Как правильно загрузить объект, являющийся подклассом 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];
, но, похоже, это не так.
Что я делаю неправильно?