3

フレームワークを作成し、「MyXibFile」という名前の xib ファイルを追加しました。別のアプリケーションを作成し、このフレームワークを追加しました。.xibこのファイルを読み込んで、そこからウィンドウを表示したい。

動作していない次のコード スニペットを使用しています

-(void)launchDownloaderWindow
{
    if (![NSBundle loadNibNamed:@"Download" owner:self]) 
    {
        NSLog(@"Nib loading failed");;
    } 

    [appWindow makeKeyAndOrderFront:nil];
}

コンソールに「Nib loading failed」というメッセージが表示されます。これを解決する方法はありますか?

4

1 に答える 1

2

これを行うには、少し異なる方法を考えることができます。作成したフレームワークでクラス (おそらく ) を作成し、NSWindowControllerそれをロードしてウィンドウを返します。たとえば、フレームワークをインポートした後、ウィンドウ コントローラーを初期化し、それが作成するウィンドウへの強力な参照を作成できます。

WindowController.m

@implementation WindowController

- (id)init {
    self = [super initWithWindowNibName:@"WindowController"];
    ...
    return self;
}

@end

MyApp.m

- (void)showSomeWindow {
    WindowController *wc = [[WindowController alloc] init];
    self.appWindow = wc.window;

    [self.appWindow makeKeyAndOrderFront:self];
}
于 2013-07-05T17:29:09.610 に答える