相关疑难解决方法(0)

如何仅使用 SwiftUI 从 @main App 访问 NSWindow?

在这个答案中,该解决方案适用于 Scene plus swiftUI。

但是使用@main 就像:

@main
struct MyApp: App {
    @StateObject private var model = MyModel()
    
    var body: some Scene {
        WindowGroup {
            Router {
                AppContent()
            }.environmentObject(self.model)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我还尝试通过使用获取主窗口

var window: NSWindow? {
        let window = NSApplication.shared.mainWindow
        return window
    }
Run Code Online (Sandbox Code Playgroud)

尽管如此,mainWindow总是返回nil

更新:

我需要NSWindow由于需要符合ASWebAuthenticationPresentationContextProviding哪些有义务返回NSWindow. 基本上,我正在尝试执行以下操作:

LoginView(store: AuthStore(window: window))
Run Code Online (Sandbox Code Playgroud)

WhereAuthStore用于AuthenticationServices执行身份验证。

macos swift swiftui

6
推荐指数
1
解决办法
1092
查看次数

标签 统计

macos ×1

swift ×1

swiftui ×1