我正在尝试在App Delegate中为我的应用程序的主窗口设置一个插座,然后在Interface Builder中连接它.我轻松地在App Delegate中创建插座:
@IBOutlet weak var mainWindow: NSWindow!
但是,在界面构建器中,我无法将引用插座连接到App Delegate.相反,我只能将它连接到Window Controller,我希望这张图片显示:
第一个对象是Window Controller,第二个对象是First Responder,但缺少App Delegate对象.菜单栏有App Delegate对象:
我可以将任何东西从菜单栏连接到App Delegate中的任何商店.
NSApp.windows[0]
但这似乎容易出错,特别是如果我有多个窗口.
解决方法
我不知道这是否是正确的做法,但这将解决您的问题.
Decalre在AppDelegate的NSWindow房产
weak var window: NSWindow!
并将该属性设置为NSWindowController的windowWillLoad
(NSApplication.sharedApplication().delegate as! AppDelegate).window = self.window
您必须子类化NSWindowController才能定义windowWillLoad