从windowDidLoad中将ViewController作为工作表启动

时间:2018-05-06 11:50:02

标签: swift macos cocoa viewcontroller

我正试图在窗口加载后立即将故事板显示为工作表。

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)
}

不幸的是,纸张显示在位置之外且在窗口后面。 当我在按钮内运行相同的代码时,一切正常。

Screenshot

如何在加载窗口后正确显示故事板表?

1 个答案:

答案 0 :(得分:0)

我对iOS生态系统有更多的了解,但我认为只有在显示原始窗口后才能显示新窗口。加载视图时调用windowDidLoad,而不是在显示视图时调用。{/ p>

因此,您应该将代码放入viewDidAppear的{​​{1}}。