2015-06-15 30 views
0

我來自iOS開發,我無法弄清楚這個基本的東西:如果我在界面生成器中打開MainMenu.xib,然後將一個按鈕拖到主窗口的視圖上,我應該將該按鈕的動作 - 應用程序代表?你如何使用MainMenu.xib中的視圖?

如果我想添加一個View Controller,我該如何將它分配給MainMenu.xib中的主窗口視圖?

什麼是模式 - 使用NSViewController來使用NSWindowController,或者只是將所有內容都推送到App Delegate中?

回答

1

所以默認情況下,您的主應用程序窗口是應用程序委託中的插座。您應該保留MainMenu.xib的所有者作爲應用程序代理。

一種常見的選擇,如果你正在創建自己的自定義窗口控制器,是建立在CustomWindowController類型的AppDelegate中的屬性,然後在-applicationDidFinishLaunching,實例化您的自定義窗口,並顯示它:

if(!windowController){ 
     windowController = [[MyWindowController alloc] initWithWindowNibName:@"MyWindow"]; 
    } 

    [windowController showWindow:self]; 

當然這意味着你可以斷開他們給你的默認窗口的連接。

如果您添加了任何按鈕,您需要將它們連接到它們所在的超級視圖的所有者。無論您是在MainMenu.xib默認窗口中工作,還是在自定義窗口控制器(如果您有)創建自己的窗口或自定義視圖控制器(如果您要創建自己的視圖)。

如果你想添加一個視圖控制器,你首先必須像使用CocoaTouch類一樣創建新的Cocoa類。然後在界面生成器中,轉到右下角的對象庫並搜索「對象」。將其拖入文檔大綱中,然後可以將視圖中的連接設置到新的視圖控制器中。

該模式實際上取決於你在做什麼,但在基本應用程序的一天結束時,你不需要創建自己的NSWindowController,你可以使用默認window他們通過AppDelegate給你。如果你正在創建需要一些邏輯的自定義視圖,那麼你將不得不創建自己的自定義NSViewControllers並將它們放入你的xib中

相關問題