从 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
在加载视图时调用,而不是在显示视图时调用。
因此,您应该将代码放入 contentViewController
的 viewDidAppear
。
我正在尝试在 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
在加载视图时调用,而不是在显示视图时调用。
因此,您应该将代码放入 contentViewController
的 viewDidAppear
。