我來自iOS開發,我無法弄清楚這個基本的東西:如果我在界面生成器中打開MainMenu.xib,然後將一個按鈕拖到主窗口的視圖上,我應該將該按鈕的動作 - 應用程序代表?你如何使用MainMenu.xib中的視圖?
如果我想添加一個View Controller,我該如何將它分配給MainMenu.xib中的主窗口視圖?
什麼是模式 - 使用NSViewController來使用NSWindowController,或者只是將所有內容都推送到App Delegate中?
我來自iOS開發,我無法弄清楚這個基本的東西:如果我在界面生成器中打開MainMenu.xib,然後將一個按鈕拖到主窗口的視圖上,我應該將該按鈕的動作 - 應用程序代表?你如何使用MainMenu.xib中的視圖?
如果我想添加一個View Controller,我該如何將它分配給MainMenu.xib中的主窗口視圖?
什麼是模式 - 使用NSViewController來使用NSWindowController,或者只是將所有內容都推送到App Delegate中?
所以默認情況下,您的主應用程序窗口是應用程序委託中的插座。您應該保留MainMenu.xib
的所有者作爲應用程序代理。
一種常見的選擇,如果你正在創建自己的自定義窗口控制器,是建立在CustomWindowController
類型的AppDelegate中的屬性,然後在-applicationDidFinishLaunching
,實例化您的自定義窗口,並顯示它:
if(!windowController){
windowController = [[MyWindowController alloc] initWithWindowNibName:@"MyWindow"];
}
[windowController showWindow:self];
當然這意味着你可以斷開他們給你的默認窗口的連接。
如果您添加了任何按鈕,您需要將它們連接到它們所在的超級視圖的所有者。無論您是在MainMenu.xib
默認窗口中工作,還是在自定義窗口控制器(如果您有)創建自己的窗口或自定義視圖控制器(如果您要創建自己的視圖)。
如果你想添加一個視圖控制器,你首先必須像使用CocoaTouch類一樣創建新的Cocoa類。然後在界面生成器中,轉到右下角的對象庫並搜索「對象」。將其拖入文檔大綱中,然後可以將視圖中的連接設置到新的視圖控制器中。
該模式實際上取決於你在做什麼,但在基本應用程序的一天結束時,你不需要創建自己的NSWindowController,你可以使用默認window
他們通過AppDelegate給你。如果你正在創建需要一些邏輯的自定義視圖,那麼你將不得不創建自己的自定義NSViewControllers並將它們放入你的xib中