我试图在.commandsRemoved()的帮助下删除MacOS中的所有命令,这做得很好,但我可以看到有一些命令没有被删除,比如ShowTabBarShowAllTabs:

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

enter image description here

推荐答案

你不能删除工具栏上的应用程序标题菜单,但以下操作可以删除它下面的所有命令.首先,将以下代码行添加到您的App struct中:

@NSApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

然后,创建一个名为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
        
    }
}

这段代码在Xcode14和MacOS13上进行了测试.

参考文献

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

Swift相关问答推荐

为什么Swift在某些链调用中不能对不可变值使用变异成员,而在其他链调用中则不能使用变异成员?

数据不会被ARC删除在swift'

为SwiftUI文本视图提供固定宽度,并仅在文本换行时使文本视图底部增大

无法创建MKAssociateRegion对象

仅当单击UIButton时才调用计时器函数

不能将符合协议的SWIFT类的实例分配给需要该协议的Objective-C属性

以编程方式使UIView居中,而不影响UIKit中其他UI类的位置

Swift中从头开始的基本HTTP客户端

如何增加 NSStatusBar 图像大小?

BLE 在 ESP32 和 Iphone 之间发送字符串

(Swift)混淆了函数内 for-in 循环的返回值和循环后(函数内)的返回值)

在 struct 中的序列和非序列泛型函数之间进行 Select

将基于MyProtocol的泛型函数的参数更改为使用存在的any MyProtocol或some MyProtocol是否会受到惩罚?

在 Swift 中,如何查看 Process() 传递给 shell 的字符串?

在swift 3中将文件保存在文档目录中?

为 UIActivityViewController Swift 设置不同的活动项

根据禁用与否更改 SwiftUI 中按钮的 colored颜色

是 swift 中另一个日期的同一周、月、年的日期

使用 DispatchTime.now() + float 延迟?

如何在 Swift 中使用 Crashlytics 登录?