在这个答案中,该解决方案适用于 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执行身份验证。