программная загрузка объекта из подкласса NSView из пера

Как мне правильно загрузить объект, являющийся подклассом NSView, с помощью Xib?

Я хочу, чтобы он загружался динамически, а не с самого начала, поэтому я сделал MyView.Xib Из MyDocument.m я сделал:

MyView *myView = [[MyView alloc] initWithFrame:...];
[NSBundle loadNibNamed:@"MyView" owner:myView];
[someview addSubview:myView];
...

, и фон в порядке (он вызывает drawrect: и он отрисовывается, как ожидалось) но все кнопки, которые я поставил на xib, не появятся. Я проверил, и они загружены, НО их супервизор - это не тот же объект, что и myView .

Почему это? Я думаю, что мне чего-то не хватает в Xib, но я не знаю, что именно. Другими словами: как мне убедиться, что корневое представление в моем xib является тем же объектом, что и владелец файла?

Хотелось бы, чтобы было что-то подобное для Mac:

NSArray* nibViews =  [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil]; //in iOS this will load the xib
MyView* myView = [ nibViews objectAtIndex:1];
[someview addSubview:myView];
...

Заранее спасибо.

ИЗМЕНИТЬ

Я думаю, что понял причину проблемы ... (??)

В классе MyView у меня есть различные IBOutlet, которые правильно подключены в IB, поэтому они загружаются нормально (я могу их сослаться). Однако для вида сверху нет IBOutlet. Поэтому, когда NSBundle загружает перо, вид сверху назначается какому-то другому объекту. Я думал, что это произойдет, если я установлю вид сверху в IB как из класса: MyView и поставлю myView в качестве владельца в [NSBundle loadNibNamed: @ "MyView" owner : myView]; но, похоже, это не так. Что я делаю неправильно?

18
задан vadian 15 November 2015 в 21:48
поделиться