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];