swift - 如何在 SwiftUI 中禁用甚至删除 macOS 中“ View ”菜单中的 EnterFullScreen 选项?

标签 swift macos swiftui

我创建了一个 HelloWorld macOS SwiftUI 项目,并且在 View 菜单中看到 EnterFullScreen 选项,那么如何删除此选项并在 SwiftUI 中禁用它?

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

enter image description here

最佳答案

您可以使用 UserDefaults 更改此设置,方法是将键“NSFullScreenMenuItemEverywhere”设置为 false,如this answer 所示。但如果您在 applicationWillFinishLaunching 中执行此操作,如该答案所示,则为时已晚,无法生效,因此请将其移至应用程序结构中的 init()

init() {
     UserDefaults.standard.set(false, forKey: "NSFullScreenMenuItemEverywhere")
}

如果您更愿意为此使用 AppStorage 属性包装器,它可能如下所示

@AppStorage("NSFullScreenMenuItemEverywhere") var fullScreenEnabled = false

init() {
     fullScreenEnabled = false
}

关于swift - 如何在 SwiftUI 中禁用甚至删除 macOS 中“ View ”菜单中的 EnterFullScreen 选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74457790/

相关文章:

ios - Swift UICollectionViewCell 随内容调整大小

swift - 自定义 UIView 中的无效上下文 0x0

windows - 发现 Mac OS & Linux 上的动态库依赖

objective-c - 如何使用 iCloud 将 NSDocument 从 Mac osx 同步到 iPad/iPhone

iOS SwiftUI 为列表而不是单元格设置背景图像

swiftui - 有条件创建形状 - SwiftUI

swift - 如何创建自定义 UIMenuController,仅包含默认项以外的自定义项?

ios - 如何在核心数据中保存现有的单例 TableView 数据?

macos - 同步两个 NSScrollView

SwiftUI 文本字段高度没有改变