LoadNibNamed не устанавливает выход

Я пытаюсь добавить NSPopOver в свое приложение, но загружаю его только при запуске 10.7 или более поздней версии. Я поместил popover, view controller & view в отдельный xib и загрузил его

BOOL loaded = [NSBundle loadNibNamed:@"Popovers.xib" owner:self];

изнутри метод awakeFromNib делегатов моего приложения. Xib загружается нормально (загружено YES), но выход, указывающий на NSPopover, остается нулевым. Есть ли проблема с загрузкой xib внутри метода awakeFromNib?

Интересно, что когда я не включил расширение.xib в имя файла, он упал.

1 ответ

Если я правильно понял, метод loadNibNamed:owner: NSBundle будет загружать только пакет, но не создавать экземпляры объектов верхнего уровня. Вы можете сделать это с помощью соответствующего метода NSNib, например instantiateNibWithOwner:topLevelObjects:.

Я предпочитаю загружать перо, создавая экземпляр подкласса NSViewController:

viewController = [[MyViewController alloc] initWithNibName:@"name" bundle:[NSBundle mainBundle]]

а затем создайте экземпляр Nib внутри пользовательского контроллера представления -(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil:

[self loadView];
Другие вопросы по тегам