我正在研究一個項目,該項目將上傳包含NSViewController的自定義NSBundles。在我的主程序我有了這個代碼來處理同捆它加載後...NSBundle加載NSViewController
id principalClass = [loadedBundle principalClass];
id instance = [[principalClass alloc] init];
[localLabel setStringValue:[instance name]];
NSView *incomingView = [[instance viewController] view];
[localView addSubview:incomingView];
[localView display];
而被捆綁的主要類init方法看起來像這樣...
-(id) init {
if(self = [super init]){
name = @"My Plugin";
viewController = [[ViewController alloc] initWithNibName:@"View" bundle:nil];
}
return self;
}
View.nib是位於捆綁項目中的一個nib。但是每當我加載捆綁我得到這個錯誤...
2010-05-27 09:11:18.423 PluginLoader [45032:a0f]無法找到名爲:在包視圖中查看nib:(空) 2010- 05-27 09:11:18.424 PluginLoader [45032:a0f] - [NSViewController loadView]無法加載「查看」筆尖。
我知道我已經連線了一切,因爲行[label setStringValue:[instance name]];
正確設置標籤文本。另外,如果我將捆綁中的所有分支並將它們加載到我的主應用程序項目中,那麼所有功能都可以按預期運行。有關我如何正確引用我的包中的「視圖」的任何想法?
謝謝!
'''''''''''''''''''''''''''出於可讀性的原因,我可能會對'principalClass'變量使用'Class'類型。 – dreamlax 2010-05-27 14:49:32
就在頭上。在20分鐘內!謝啦 – Staros 2010-05-27 14:52:13