我正在研究一个项目,该项目将上传包含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