簡體   English   中英

Mac OS X Cocoa:使用View創建NCViewController

[英]Mac OS X Cocoa: Create NCViewController with View

我對iOS有相當的經驗,但對MacOS X Cocoa還是很環保的。

我正在使用InterfaceBuilder創建視圖層次結構。 這與MainMenu NIB是分開的。

我也在創建一個NSViewController。 由於Mac OS X的工作方式,此控制器對象未直接附加到視圖層次結構。

我連接了IB中的所有各種插座,使視圖層次結構成為視圖控制器的視圖對象,並附加了一些包含的控件和其他控件。

現在,這里有個問題:在iOS中,我只是從情節提要中實例化控制器,然后就附帶了整個套件和kaboodle。 沒有大驚小怪,沒有頭腦。

在Mac OS X中,我可以創建視圖控制器:

MyAwesomeViewControllerClass *pViewController = [[MyAwesomeViewControllerClass alloc] initWithNibName:nil bundle:nil];

我在iOS中找不到與InstantiateViewControllerWithIdentifier:方法類似的Mac OSX。 那才是我真正需要的。

如果需要分別實例化它們,則需要弄清楚該如何做。

我不想以編程方式執行此操作。 其中涉及許多自動布局的內容,這是大量(且精致)的意大利面條。

最有可能的是,我要解決這個錯誤,並且想以5美元的價格購買一個線索,亞歷克斯...

您需要通過調用initWithNibName:bundle:傳遞NIB的名稱:

MyAwesomeViewControllerClass *pViewController = [[MyAwesomeViewControllerClass alloc]
    initWithNibName:@"MyAwesomeViewControllerClass"
             bundle:nil];

我通常會覆蓋init

- (instancetype)init {
    // NOTE: Not [self initWithNibName:bundle:] !!!
    self = [super initWithNibName:@"MyAwesomeViewControllerClass" bundle:nil];
    if (self) {
        // Other init
    }
    return self;
}

接着:

MyAwesomeViewControllerClass *pViewController =
    [[MyAwesomeViewControllerClass alloc] init];

更容易鍵入,並且不需要視圖控制器的用戶知道正在使用的NIB(即使很明顯)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM