使用Storyboard参考AppDelegate中的主要NSWindow?

时间:2015-06-07 04:32:47

标签: xcode swift cocoa interface-builder

我正在尝试在App Delegate中为我的应用程序的主窗口设置一个插座,然后在Interface Builder中连接它。我轻松地在App Delegate中创建插座:

@IBOutlet weak var mainWindow: NSWindow!

但是,在界面构建器中,我无法将引用插座连接到App Delegate。相反,我只能将它连接到Window Controller,我希望这张图片显示:

enter image description here

第一个对象是Window Controller,第二个对象是First Responder,但缺少App Delegate对象。菜单栏有App Delegate对象:

enter image description here

我可以将任何东西从菜单栏连接到App Delegate中的任何商店。

我想我可以使用:

访问窗口对象
NSApp.windows[0]

但这似乎容易出错,特别是如果我有多个窗口的话。

1 个答案:

答案 0 :(得分:6)

我不知道这是否是正确的做法,但这将解决您的问题。

Decalre AppDelegate中的NSWindow房产

weak var window: NSWindow!

并将该属性设置为类似NSWindowController的windowWillLoad

(NSApplication.sharedApplication().delegate as! AppDelegate).window = self.window

您必须继承NSWindowController以定义windowWillLoad