如何以编程方式在 macOS SwiftUI 应用程序中打开设置 window
How to programatically open Settings window in a macOS SwiftUI App
我创建了一个简单的仅限 macOS 的 SwiftUI 应用程序,并根据 Apple's instructions 添加了一个设置屏幕:
import SwiftUI
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
RootView()
}
Settings {
SettingsView()
}
}
}
有效:首选项 选项显示在应用程序菜单中。现在,我还想以编程方式打开此设置 window,例如单击按钮时。有办法实现吗?
我希望NSApplication
中有一个类似于About window的方法,但似乎没有。
通过检查应用程序菜单,我找到了这个解决方案:
NSApp.sendAction(Selector(("showPreferencesWindow:")), to: nil, from: nil)
不过,我认为它可能无法通过使用私有 API 的 App Review,因此仍然欢迎不那么阴暗的替代品。
更新:这实际上已经通过了 App Review,所以我暂时将其标记为答案。
我创建了一个简单的仅限 macOS 的 SwiftUI 应用程序,并根据 Apple's instructions 添加了一个设置屏幕:
import SwiftUI
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
RootView()
}
Settings {
SettingsView()
}
}
}
有效:首选项 选项显示在应用程序菜单中。现在,我还想以编程方式打开此设置 window,例如单击按钮时。有办法实现吗?
我希望NSApplication
中有一个类似于About window的方法,但似乎没有。
通过检查应用程序菜单,我找到了这个解决方案:
NSApp.sendAction(Selector(("showPreferencesWindow:")), to: nil, from: nil)
不过,我认为它可能无法通过使用私有 API 的 App Review,因此仍然欢迎不那么阴暗的替代品。
更新:这实际上已经通过了 App Review,所以我暂时将其标记为答案。