如何在 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
如何在 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