SwiftUI WindowGroup:如何限制windows的数量?

SwiftUI WindowGroup: How to limit the number of windows?

我正在构建一个单一 window 应用程序并希望使用新的Swift 应用程序生命周期

import SwiftUI

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

WindowGroup 的默认实现允许 window 的多个实例(即,如果您点击 ⌘N)。我找不到可以改变该行为的修饰符。

如何将 WindowGroup 中的 windows 数量限制为 1 个?

应该这样做:

import SwiftUI

@main
struct SingleWindowApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }.commands {
            CommandGroup(replacing: .newItem, addition: { })
        }
    }
}

因为我遇到了同样的问题,但是在命令修饰符无效的 iPad 上,我发现了这个:有一个“应用程序场景清单” UIApplicationSceneManifest 属性 在您的 Info.plist 是一本字典,作为子项“启用多个 Windows” UIApplicationSupportsMultipleScenes 默认设置为 YES。将此选项设置为 NO 会产生所需的效果:)