Как загрузить xib и отобразить окно пользовательского фреймворка из приложения

Я создал фреймворк и добавил xib-файл с именем "MyXibFile". Я создал отдельное приложение и добавил к нему этот фреймворк. Я хочу загрузить это .xib файл для отображения окна из него.

Я использую следующий фрагмент кода, который не работает

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

    [appWindow makeKeyAndOrderFront:nil];
}

Я вижу сообщение в консоли "Не удалось загрузить перо". Есть предложения, как решить эту проблему?

1 ответ

Я могу придумать немного другой способ сделать это. В созданной вами среде создайте класс, возможно, 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];
}
Другие вопросы по тегам