Как правильно загрузить объект, который является подклассом NSView, с использованием Xib?
Я хочу, чтобы он загружался динамически не с самого начала, поэтому я создал MyView.Xib From MyDocument.m Я сделал:
MyView *myView = [[MyView alloc] initWithFrame:...];
[NSBundle loadNibNamed:@"MyView" owner:myView];
[someview addSubview:myView];
...
и фон в порядке (вызывает drawrect: он рисуется, как и ожидалось), но все кнопки, которые я положил на xib, не будут отображаться.Я проверил, и они загружены, но их суперпредставление не тот же объект, что и myView
.
Почему это?Я думаю, что что-то упустил в Xib, но я не знаю точно, что.Другими словами: как мне убедиться, что представление root в моем 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];
, но, похоже, это не так.Что я делаю не так?