[英]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.