【发布时间】:2018-05-06 11:50:01
【问题描述】:
我试图在窗口加载后立即将情节提要显示为工作表。
override func windowDidLoad() {
super.windowDidLoad()
let storyboard = NSStoryboard(name: NSStoryboard.Name(rawValue: "Init"), bundle: nil)
let controller = storyboard.instantiateInitialController() as! NSViewController
self.window!.contentViewController?.presentViewControllerAsSheet(controller)
}
很遗憾,工作表显示在位置不正确且位于窗口后面。 当我在按钮内运行相同的代码时,一切正常。
加载窗口后如何正确显示情节提要表?
【问题讨论】:
-
我不是 mac 开发人员,但我认为
windowDidLoad不是显示其他窗口的正确位置。可能您应该等到显示给定窗口后再显示其他窗口,可能在contentViewController中的viewDidAppear。 -
@Sulthan 你说得对,谢谢 - 我在窗口生命周期中使用了错误的函数。在
contentViewController的viewDidAppear中运行代码确实有效! (如果你将它作为一个发布,我会批准你的 awnser) -
然后发布了答案。这只是一个猜测,因为我不了解 MacOS 生态系统。
标签: swift macos cocoa viewcontroller