我构建了一个在登录过程开始时运行的macOS框架,我想在窗口中向用户显示一些信息。我有一个带有.XIB文件的NSWindowController,它是我框架的主窗口。
我想在另一个视图中添加更多presentAsSheet。为此,我创建了一个带有.XIB的NSViewController来定义我想要在模态中呈现的用户界面但是在这里我完全被阻止,因为获取窗口的contentViewController它总是为零
有帮助吗?谢谢
我正在初始化我的主窗口,如下所示:
func run() {
NSApp.activate(ignoringOtherApps: true)
mainWC = MainWC(windowNibName: "MainWC")
guard mainWC.window != nil else {
return
}
NSApp.runModal(for: mainWC.window!)
}
在哪里我试图呈现其他NSViewController“
self.window?.contentViewController?.presentAsSheet(customViewController)
在我的MainWindowController中,我这样做:
@IBAction func btnAction(_ sender: Any) {
let customModal = CustomModal(windowNibName: "CustomModal")
self.window?.beginSheet(customModal.window!, completionHandler: { code in
print(message: "Clicked")
})
}
模态永远不会出现
在加载窗口和内容视图之前,您无法显示视图
在windowDidLoad()
的窗口控制器内部
override func windowDidLoad() {
super.windowDidLoad()
// present the view
}
甚至在视图控制器的viewDidLoad
中
override func viewDidLoad() {
super.viewDidLoad()
// present the view
}