我正在研究一个可以上传包含 NSViewController 的自定义 NSBundle 的项目。在我的主程序中,我有这个代码来处理加载后的包......
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 是位于 bundles 项目中的一个 nib。但是每当我加载捆绑包时,我都会收到此错误...
2010-05-27 09:11:18.423 PluginLoader [45032:a0f] 找不到名为:在捆绑路径中查看:(空)2010-05-27 09:11:18.424 PluginLoader [45032:a0f]-[NSViewController loadView ] 无法加载“视图”笔尖。
我知道我已经把所有东西都连接好了,因为该行[label setStringValue:[instance name]];
正确设置了标签文本。另外,如果我将包中的所有类都加载到我的主应用程序项目中,一切都会按预期工作。关于如何在我的包中正确引用“视图”的任何想法?
谢谢!