【发布时间】:2014-11-29 01:07:54
【问题描述】:
我知道,对于 iOS,您可以像这样从应用委托中引用根视图控制器:
var rootViewController = self.window!.rootViewController
当面向 OS X 时,如何从应用委托中引用主窗口控制器?我想以这种方式传递一个变量(托管对象上下文),因为我已经读过它是引用 moc 的一个很好的解决方案。
【问题讨论】:
我知道,对于 iOS,您可以像这样从应用委托中引用根视图控制器:
var rootViewController = self.window!.rootViewController
当面向 OS X 时,如何从应用委托中引用主窗口控制器?我想以这种方式传递一个变量(托管对象上下文),因为我已经读过它是引用 moc 的一个很好的解决方案。
【问题讨论】:
您可以像这样访问主 NSWindow 的 NSWindowController 实例:
NSApplication.sharedApplication().mainWindow?.windowController
【讨论】:
NSApplication.shared.mainWindow! :)
!在较早的答案中,如果隐藏窗口会导致崩溃,因此我建议像这样缓存窗口或使用计算属性:
var mWindow: NSWindow? = nil
func mainWindowCached() -> NSWindow? {
if let window = NSApplication.shared.mainWindow {
self.mWindow = window
}
return self.mWindow
}
【讨论】:
你可以这样访问:
NSApplication.shared().mainWindow?.contentViewController as! YourViewController;
【讨论】: