Interface-Builder: «объединить» NSView-класс с .xib
Я хотел бы настроить пользовательский NSView в Интерфейсном Разработчике, но я не заставляю его работать для OSX.
В .xib моего ViewController я добавил пользовательское представление и установил для класса значение MyCustomView. Я создал MyCustomView.h, MyCustomView.m и MyCustomView.xib.
В MyCustomView.xib я также установил для класса значение MyCustomView. В MyCustomView.m,- (void)awakeFromNib
называется, но- (id)initWithCoder:(NSCoder *)aDecoder
а также- (id) awakeAfterUsingCoder:(NSCoder*)aDecoder
нет.
Чего я хотел бы добиться, так это того, что в моем ViewController добавленное представление «заполняется» представлением, которое я настроил в MyCustomView.xib. Какой лучший способ сделать это?
РЕДАКТИРОВАТЬ: Я не думаю, что я был достаточно ясен ...
У меня есть мой ViewController, содержащий пользовательский вид, который называется MyCustomView.
Это представление должно быть типа MyCustomView, где
MyCustomView.h MyCustomView.m MyCustomView.xib
существует. Я уже установил для владельца файла MyCustomView.xib значение MyCustomView, а для настраиваемого элемента ViewView в контроллере ViewController - MyCustomView, но он не работает.
Если я сделаю это с
- (void)awakeFromNib {
NSString* nibName = NSStringFromClass([self class]);
NSArray* topLevelObjects;
[[NSBundle mainBundle] loadNibNamed:nibName
owner:nil
topLevelObjects:&topLevelObjects];
NSView* view = topLevelObjects[0];
[view setFrame:[self bounds]];
[self addSubview:view];
}
Я получаю только представление типа NSView, а не MyCustomView ... Нет ли простого способа сказать ViewController.xib, что это MyCustomView?
РЕДАКТИРОВАТЬ 2: я загрузил простой проект
Вhttps://dl.dropboxusercontent.com/u/119600/Testproject.zip Вы находите простой проект с MyCustomView (не в ViewController, а в window.xib) - но он не показывает кнопку, которая находится в MyCustomView.xib. Я бы хотел добиться именно этого - какой самый простой, лучший способ?