[英]How to disable Full Screen button with SwiftUI 2 on macOS
正如标题所建议的,我应该如何在 macOS 上使用 SwiftUI 2 禁用全屏按钮?
我能找到的唯一信息似乎是使用NSWindow
中的功能。 在 SwiftUI 2 中是否有一种本地方法可以做到这一点?
您可以简单地使用.onReceive
修饰符来达到目的:
struct MacApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.frame(width: 480, height: 272)
.fixedSize()
.onReceive(NotificationCenter.default.publisher(for: NSApplication.willUpdateNotification), perform: { _ in
for window in NSApplication.shared.windows {
window.standardWindowButton(.zoomButton)?.isEnabled = false
}
})
}
.windowStyle(HiddenTitleBarWindowStyle())
}
YourAppName.Swift
import SwiftUI
@main
struct YourAppName: App {
var body: some Scene {
WindowGroup {
HStack {
ContentView().onAppear{
// Code Below To Disable FullScreen Mode
let _ = NSApplication.shared.windows.map {
$0.styleMask = [ .titled,.closable,.miniaturizable]
}
}
}
}
}
}
您可以使用.onAppear
修饰符来禁用全屏按钮。
struct MacApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.onAppear {
DispatchQueue.main.async {
NSApplication.shared.windows.forEach { window in
window.standardWindowButton(.zoomButton)?.isEnabled = false
}
}
}
}
.windowStyle(HiddenTitleBarWindowStyle())
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.