2016-08-25 39 views
3

我想要访问AppDelegate中的窗口。如果我提出一个新的OSX可可项目没有故事板,那么AppDelegate中包含像这样无法连接窗口IBOutlet与故事板

class AppDelegate: NSObject, NSApplicationDelegate { 

    @IBOutlet weak var window: NSWindow! 

我可以删除出口和窗户之间的连接,并一遍又一遍地重新连接的窗口变量,它工作正常。

现在,如果我创建一个带故事板的新OSX Cocoa项目,并将该窗口变量添加到AppDelegate并尝试控制将插口拖到窗口上,就像我在没有故事板的项目上一样,它不起作用。

有什么建议吗?

(OSX 10.11.5的Xcode 7.3.1(8测试版6)快捷2.2(3))

我知道我可以在代码中这样做只是不知道为什么我不能连接出口。

回答

3

故事板由场景组成,每个场景可以被认为是一个单独的xib文件。你不能在各个xib中的对象之间建立连接(动作,插座等),并且 - 类似地 - 你不能在处于故事板的不同场景中的对象之间建立连接。

在默认设置故事板,您AppDelegate对象和窗口对象被安置在不同的场景 - 因此你为什么不能建立出口:

enter image description here

与此相反,在厦门国际银行应用程序这两个对象驻留在相同的xib文件,因此创建连接可能的。

+1

那么有没有解决方案?我与窗口场景和窗口内容场景有类似的情况,并且不能跨越边界进行连接是一种痛苦。 – Uncommon