从 AppKit 打开 SwiftUI 设置

问题描述 投票:0回答:1

在 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 打开应用程序设置

swift macos swiftui appkit
1个回答
0
投票

这是新方法:

@main
struct MyApp: App {

var body: some Scene {
    WindowGroup {
        RootScreen()
    }

    Settings {
        SettingsScreen()
    }

    MenuBarExtra("My App", systemImage: "mic.fill") {
        SettingsLink {
           Text("Settings")
        }
    }
    .keyboardShortcut(".", modifiers: .command)
}

替代方案:https://github.com/orchetect/SettingsAccess

© www.soinside.com 2019 - 2024. All rights reserved.