2016-08-25 33 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