如何在 SwiftUI macOS 应用程序中限制 window 个实例?

How do I limit window instance in a SwiftUI macOS App?

如何在 SwiftUI for macOS 中将一个应用程序限制为只有一个 window?许多 Apple 应用程序(例如 Notes 和 Developer 应用程序)不允许创建另一个 Window。我想知道如何在 SwiftUI 中实现类似的行为。

我发现默认情况下允许此行为。本质上,我试图在此处为 New Window:

消除此选项

我发现了一种方法,可以在您的 App 结构

中使用 .commands 修饰符摆脱创建新 window 的选项
 var body: some Scene {
        WindowGroup {
            ContentView()
        }
        .commands {
            CommandGroup(replacing: CommandGroupPlacement.newItem) {
                EmptyView()
            }
        }
    }

上面的答案可行,但如果您没有任何解决方法,应用商店将拒绝它,因为用户不可能在关闭前一个时创建新的 window一。因此,为了让您的应用程序再次运行,用户需要完全退出应用程序并再次重新打开,这违反了 Apple 的 macOS human interface guidelines