无法通过故事板

时间:2016-08-25 09:42:09

标签: swift xcode macos cocoa storyboard

我正在尝试访问AppDelegate中的Window。如果我在没有故事板的情况下创建一个新的OSX Cocoa项目,那么AppDelegate包含一个像这样的窗口变量

class AppDelegate: NSObject, NSApplicationDelegate {

    @IBOutlet weak var window: NSWindow!

我可以删除插座和窗口之间的连接并反复重新连接,它可以正常工作。

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

有什么建议吗?

(OSX 10.11.5 Xcode 7.3.1(和8 beta 6)swift 2.2(和3))

我知道我可以在代码中做到这一点只是不知道为什么我无法连接插座。

1 个答案:

答案 0 :(得分:3)

故事板由场景组成,每个场景都可以被视为一个xib文件。您不能在驻留在单独的xib中的对象之间建立连接(操作,出口等),并且 - 类似地 - 您不能在位于故事板中的不同场景中的对象之间建立连接。

在默认情节提要设置中,您的AppDelegate对象和窗口对象位于不同的场景中 - 因此您无法创建插座:

enter image description here

相比之下,在 xib 应用程序中,两个对象都驻留在同一个xib文件中,因此可以创建连接