【发布时间】:2021-05-10 05:03:50
【问题描述】:
从 Xcode 中的一个新 SwiftUI macOS 项目开始,我设置了一些非常基本的功能。
@main
struct SwiftUIWindowTestApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
//ContentView
struct ContentView: View {
var body: some View {
//Button to open a new window
Button("Open Preferences"){
openPreferences()
}
.padding(100)
}
//Open the new window
func openPreferences(){
let preferencesWindow = NSWindow()
preferencesWindow.contentView = NSHostingView(rootView: PreferencesView())
let controller = NSWindowController(window: preferencesWindow)
controller.showWindow(nil)
}
}
//PreferencesView
struct PreferencesView: View {
var body: some View {
Text("Preferences")
.frame(width:300, height:200)
}
}
但是当我点击Open Preferences后,我看到一个新窗口出现如下: 为什么弹出窗口中缺少控制按钮(关闭、最小化、缩放)?
我已尝试将按钮显式设置为可见(即使默认情况下它们应该是可见的)并且没有任何变化:
preferencesWindow.standardWindowButton(.closeButton)?.isHidden = false
preferencesWindow.standardWindowButton(.miniaturizeButton)?.isHidden = false
preferencesWindow.standardWindowButton(.zoomButton)?.isHidden = false
我在 AppKit 应用程序中使用了相同的示例,因此 SwiftUI 似乎有些奇怪。有什么想法吗?
【问题讨论】:
标签: swiftui nswindow nswindowcontroller