Я довольно долго боролся с этой проблемой, и я не могу понять это сам.
Это ситуация:
Я хочу иметь собственное представление на основе Nib со своим собственным ViewController. Затем я хочу добавить этот вид в окно. Поэтому окно должно содержать мой пользовательский вид.
Итак, я создам очень простой пример, подобный этому:
- В Xcode 4 я создаю новое пустое основанное на документе приложение Какао
- Я создаю новый класс Какао, который должен расширяться от
NSViewController
(что приводит к созданию пера вместе с файлом .h и .m. Имя созданного файла .h, .m und .xib: FaceViewController
для тестирования он должен отображать только текст.
- Я открываю
NSViewController.xib
в InterfaceBuilder, добавляю многострочный текстовый компонент и помещаю его в пользовательское представление, которое уже находится в файле xib. Я делаю текст, охватывающий весь вид.
- В
MyDocument.xib
я также добавляю заполнитель Custom View
, который должен быть заменен моим пользовательским FaceView.
С этой отправной точки все, что я пытался включить созданным View + ViewController на моем MyDocument.xib
, не удалось, и область, где должен отображаться мой текст, остается пустой (как фон нижележащего окна.
Так что мой вопрос на самом деле заключается в том, что мне нужно сделать, чтобы мой FaceView был загружен в пользовательский вид, который я поместил на MyDocument.xib
. Вот некоторые вещи, которые мне не ясны:
- Пользовательский вид простирается от
NSView
, поэтому я хотел изменить это на свой FaceView, но вид не существует как класс, но определен в InterfaceBuilder в xib, мне нужно установить это значение, отличное от NSView
- Нужно ли выделять, инициализировать
FaceViewController
в коде или достаточно перетащить его в любой из моих двух .xibs?
- Могу ли я использовать InterfaceBuilder для размещения моего FaceView или мне нужно делать это программно?
Я действительно думал, что создание собственного вида, подобного этому, было бы очень просто, но до сих пор получалось совсем наоборот, поэтому любая помощь будет принята с благодарностью.