在 macOS 14 上,打开设置的方式发生了变化。到目前为止我一直使用的代码是:
if #available(macOS 13, *) {
NSApp.sendAction(Selector(("showSettingsWindow:")), to: nil, from: nil)
} else {
NSApp.sendAction(Selector(("showPreferencesWindow:")), to: nil, from: nil)
}
在 macOS 14 上,此代码会抛出错误消息
Please use SettingsLink for opening the Settings scene.
实际问题:如何在 macOS 14 (Sonoma) 中以编程方式从 AppKit 打开应用程序设置
这是新方法:
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
RootScreen()
}
Settings {
SettingsScreen()
}
MenuBarExtra("My App", systemImage: "mic.fill") {
SettingsLink {
Text("Settings")
}
}
.keyboardShortcut(".", modifiers: .command)
}