swift 如何删除macOS中的所有命令?

qvsjd97n  于 2022-11-21  发布在  Swift
关注(0)|答案(1)|浏览(128)

我尝试在.commandsRemoved()的帮助下删除macOS中的每个命令,这是做得很好,但我可以看到有一些没有得到删除,如ShowTabBarShowAllTabs

@main
struct testApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
        .commandsRemoved()
    }
}

ffscu2ro

ffscu2ro1#

您无法移除工具栏上的应用标题菜单,但可以使用以下方法移除其下的所有命令。首先,将以下代码行添加到您的应用struct

@NSApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

然后,创建一个名为AppDelegate的新文件(或者您能记住的任何文件--它也可以在同一个文件中)。

//In the file, you must import `AppKit`

class AppDelegate: NSObject, NSApplicationDelegate {
    func applicationWillFinishLaunching(_ notification: Notification) {
            NSWindow.allowsAutomaticWindowTabbing = false //<-- This is the key!

            //This will hide all of the fullscreen and tab menu controls
        
    }
}

此代码已在Xcode 14和macOS 13上进行了测试。

参考

https://www.hackingwithswift.com/forums/swiftui/what-s-the-swiftui-way-to-do-this-appdelegate-thing/10559
https://stackoverflow.com/a/65634944/20384561
https://developer.apple.com/documentation/appkit/nswindow/1646657-allowsautomaticwindowtabbing

相关问题