从 windowDidLoad 启动 ViewController 作为 sheet

Launching ViewController as sheet from windowDidLoad

我正在尝试在 window 加载后立即将故事板显示为 sheet。

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

不幸的是,sheet 显示错位并位于 window 之后。 当我 运行 在按钮中使用相同的代码时,一切正常。

Screenshot

如何在加载 window 后正确显示故事板 sheet?

我对 iOS 生态系统有更多了解,但我认为您应该在显示原点 window 之后才显示新的 windows。 windowDidLoad 在加载视图时调用,而不是在显示视图时调用。

因此,您应该将代码放入 contentViewControllerviewDidAppear