Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在macOS上使用SwiftUI 2禁用全屏按钮_Swift_User Interface_Swiftui - Fatal编程技术网

如何在macOS上使用SwiftUI 2禁用全屏按钮

如何在macOS上使用SwiftUI 2禁用全屏按钮,swift,user-interface,swiftui,Swift,User Interface,Swiftui,正如标题所建议的,我应该如何在macOS上禁用Swiftui2的全屏按钮 我能找到的唯一信息似乎是使用了。在Swiftui2中有没有一种本地方法可以做到这一点?YourAppName.Swift import SwiftUI @main struct YourAppName: App { var body: some Scene { WindowGroup { HStack { ContentView().onAp

正如标题所建议的,我应该如何在macOS上禁用Swiftui2的全屏按钮

我能找到的唯一信息似乎是使用了。在Swiftui2中有没有一种本地方法可以做到这一点?

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]
                            }
                      }
                  } 
            }
    }
}


您只需使用
.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())
}
效果如下,第三个绿色按钮变为透明灰色:

查看我的github项目bro