У меня возникают трудности с загрузкой представлений с помощью Interface Builder и NSViewController.
Моя цель состоит в том, чтобы иметь представление, которое соответствует следующему описанию: верхняя панель сверху (как панель инструментов, но не совсем), которая охватывает всю ширину представления, и второй «вид содержимого» ниже. Этот составной вид принадлежит моему NSViewController
подклассу.
Для этого имело смысл использовать Interface Builder. Я создал перо представления и добавил к нему два подпредставления, выложив их правильно (с верхней панелью и представлением содержимого). Я установил File's Owner
на MyViewController
, подключил розетки и прочее.
Представления, в которые я хочу загрузить (панель и содержимое), также находятся в их собственных перьях (это может быть тем, что сбивает меня с толку), и эти перья имеют свой собственный класс, установленный на соответствующий подкласс NSView, где это применимо. Я не уверен, что установить в качестве их File's Owner
(я предполагаю, что MyController
должен быть их владельцем).
Увы, когда я запускаю экземпляр MyViewController
, ни одно из моих перьев на самом деле не отображается. Я добавил его в contentView моего окна правильно (я проверял иначе), и на самом деле, вещи вроде загружаются. То есть awakeFromNib
отправляется на панель, но не отображается в окне. Я думаю, что я определенно где-то пересек провода. Возможно, кто-то мог бы помочь, чтобы снять мое разочарование?
РЕДАКТИРОВАТЬ некоторый код, чтобы показать, что я делаю
Контроллер загружается после завершения запуска моего приложения из делегата приложения:
MyController *controller = [[MyController alloc] initWithNibName:@"MyController" bundle:nil];
[window setContentView:[controller view]];
А потом в моем initWithNibName я ничего не делаю, но пока что звоню супер.