我有一個使用標準模板的基於文檔的應用程序。我在Main Menu.xib中有兩個輔助面板,我的主邏輯當前位於App Delegate中,主要是通過我面板上的按鈕觸發的App Delegate中的IBAction。一切正常,但我知道它應該組織得更好。使用單獨的.nibs並從應用程序代理獲取邏輯
我實現了一個首選項面板由Hillegass第12章所以建議:
創建一個名爲AppController的定製控制器包含PreferenceController實例 。這是在主菜單中實例化的。
定製PreferenceController類,它是 NSWindowController的子類。這會將在Preferences.xib
創建之前,我在應用程序的開發太遠的Preferences.xib
首選項面板,我要確保我組織的事情以正確的方式。
我想將我的主邏輯從App Delegate移出,可能進入App Controller。我希望App Controller負責顯示和隱藏各種面板,並且我希望每個面板都有自己的.xib。
我已經創建了兩個NSWindowController的子類,並使它們成爲AppController的ivars,與PreferencesController例如一樣。 Panel1Controller & Panel2Controller。
我的問題是界面生成器不讓我連接AppController中的一個IBAction到我面板上的一個按鈕。它只允許我連接到.xib文件的所有者,即Panel1.xib的Panel1Controller。
如果我把邏輯放在Panel1Controller中,我怎麼才能在其他面板之一(比如Panel2Controller?)中隱藏它?
我對此有何看法?
變得非常困惑...。
任何幫助非常感謝!
問候,
約翰
爲了能夠在Interface Builder中連線,您需要在Interface Builder中引用目標對象。要做到這一點,將對象庫中的「對象」拖到App Controller的xib文件中。然後將該對象的類設置爲您的「AppController」類。做這件事時要記住的一件事是,當你加載xib時,對象將被自動實例化。 最後,所有的Panel1Controller邏輯都應該在Panel1Controller中。 – markeissler