如何在macOSSwiftUI应用程序中以编程方式打开设置窗口

我创建了一个简单的仅限 macOS 的 SwiftUI 应用程序,并按照Apple 的说明添加了一个设置屏幕:

import SwiftUI

@main
struct MyApp: App {
    var body: some Scene {
        WindowGroup {
            RootView()
        }
        Settings {
            SettingsView()
        }
    }
}

它有效:首选项选项选项显示在应用程序菜单中。现在,我还想以编程方式打开此设置窗口,例如单击按钮时。有没有办法实现这一目标?

我希望 中有一种方法NSApplication,类似于关于窗口,但似乎没有。

回答

通过检查应用程序菜单,我找到了这个解决方案:

NSApp.sendAction(Selector(("showPreferencesWindow:")), to: nil, from: nil)

不过,我认为它可能无法通过使用私有 API 的 App Review,因此仍然欢迎使用不那么阴暗的替代方案。

更新:这实际上已经通过了 App Review,所以我现在将其标记为答案。


以上是如何在macOSSwiftUI应用程序中以编程方式打开设置窗口的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>