NSViewController を含むカスタム NSBundles をアップロードするプロジェクトを検討しています。私のメインプログラムでは、ロードされた後にバンドルを処理するためのこのコードがあります...
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] という名前の nib が見つかりません: バンドル パスのビュー: (null) 2010-05-27 09:11:18.424 PluginLoader[45032:a0f] -[NSViewController loadView ] "View" nib をロードできませんでした。
[label setStringValue:[instance name]];
行がラベル テキストを正しく設定しているので、すべてが接続されていることがわかります。さらに、バンドル内のすべてのクラスを取得してメイン アプリケーション プロジェクトにロードすると、すべてが期待どおりに機能します。バンドルで「ビュー」を正しく参照する方法について何か考えはありますか?
ありがとう!