我想在macOS上的SwiftUI应用程序中显示一个带有不同内容的第二个窗口。我找不到任何关于它的文档资料。下面的尝试不起作用。有人知道如何做吗?
class AppState: ObservableObject {
@Published var showSecondWindow: Bool = false
}
@main
struct MultipleWindowsApp: App {
@StateObject var appState = AppState()
var body: some Scene {
WindowGroup {
ContentView().environmentObject(appState)
}
WindowGroup {
if appState.showSecondWindow {
SecondContent()
}
}
}
}
struct ContentView: View {
@EnvironmentObject var appState: AppState
var body: some View {
VStack {
Text("Hello, world!")
Button("Open 2nd Window") {
appState.showSecondWindow = true
}
}.padding()
}
}
struct SecondContent: View {
var body: some View {
Text("Hello, from window #2.")
}
}
NSApplication.shared.keyWindow?.close()
。 - Marcos Tanakawin.makeKeyAndOrderFront(sender)
时,它应该像任何其他NSWindow
一样工作,因为它 是NSWindow
。您可以打开任何窗口吗?也许与 SwiftUI 无关?您可以尝试从窗口访问contantViewController
并检查它。 - bauerMusic