You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何彻底移除macOS应用所有命令?ShowTabBar等未被.commandsRemoved()清除

解决macOS App中.commandsRemoved()无法移除ShowTabBar/ShowAllTabs命令的问题

.commandsRemoved()仅能移除系统全局默认命令,而ShowTabBar、ShowAllTabs这类属于TabView关联的窗口级命令,不在全局命令的覆盖范围内,因此需要通过自定义Commands来处理。

解决方案

通过在WindowGroup上添加.commands修饰器,替换或移除标签页相关的命令组:

方法1:完全移除所有窗口默认命令

直接使用EmptyCommands()覆盖所有窗口级命令,包括标签栏相关选项:

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

方法2:针对性移除标签页命令组

如果需要保留其他窗口命令,仅替换标签页相关的命令组为空:

@main
struct testApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
        .commandsRemoved()
        .commands {
            CommandGroup(replacing: .windowTabbing, with: {})
        }
    }
}

说明

  • .windowTabbing是系统定义的标签页命令组,包含ShowTabBar、ShowAllTabs等选项,替换为空后这些命令会从菜单栏中消失。
  • 两种方法都能解决你遇到的部分命令未被移除的问题,可根据是否需要保留其他窗口命令选择对应方案。

内容的提问来源于stack exchange,提问作者swiftPunk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 19:01:20