我知道,对于iOS,您可以从app delegate引用根视图控制器,如下所示:
var rootViewController = self.window!.rootViewController
在针对OS X时,如何从应用代表引用主窗口控制器?我想以这种方式传递一个变量(托管对象上下文),因为我已经读过它是引用moc的一个很好的解决方案。
答案 0 :(得分:15)
您可以像这样访问NSWindow主的NSWindowController实例:
NSApplication.sharedApplication().mainWindow?.windowController
答案 1 :(得分:0)
!在较早的答案中,如果窗口是隐藏的,则会导致崩溃,因此我建议像这样或使用计算属性来缓存窗口:
var mWindow: NSWindow? = nil
func mainWindowCached() -> NSWindow? {
if let window = NSApplication.shared.mainWindow {
self.mWindow = window
}
return self.mWindow
}
答案 2 :(得分:-2)
您可以这样访问:
NSApplication.shared().mainWindow?.contentViewController as! YourViewController;