ええ、私は問題を解決しました。詳細が他の人に役立つことを願っています.
フレームワークには、や、NSView
などの多くのコントロールを含むの複雑なサブクラスがあります。フレームワークには、H ファイル、M ファイル、および XIB ファイルが含まれています。H と M はクラスを定義します。XIB には、クラスが である View オブジェクトがあります。NSSplitView
NSOutlineView
IKImageBrowserView
NSPathControl
MyView
MyView
アプリケーション側では、ユーザーはNSView
アイテムをアプリのメイン ウィンドウにドラッグし、アウトレットをビューに割り当てる必要があります。たとえばmainView
、applicationDidFinishLaunching
「コンシューマー」アプリの機能では、次のコードが必要です
NSBundle *frameworkBundle = [NSBundle bundleForClass:[MyView class]];
NSNib *nibby = [[[NSNib alloc] initWithNibNamed:@"MyView" bundle:frameworkBundle] autorelease];
NSArray *topLevelObjects = nil;
BOOL flag = [nibby instantiateNibWithOwner:nil topLevelObjects:&topLevelObjects];
assert(flag);
for (id topLevelObject in topLevelObjects) {
if ([topLevelObject isKindOfClass:[MyView class]]) {
[mainView addSubview: topLevelObject];
MyView* xView = topLevelObject;
[xView setFrameSize:mainView.frame.size];
break;
}
}
上記のコードでは、XIB ファイルが読み込まれるため、MyView
オブジェクトが初期化されます。次に、XIB から取得し、サイズを変更して、ウィンドウのメイン ビューに追加します。