как создать объект представления, контроллер представления, связанный файл .xib, а затем загрузить его в окно…
Это несколько вещей, и некоторые из них конфликтуют.
Если вы создаете представление в коде, вам не нужно (и не следует) также создавать его в кончике, и наоборот.
Если вы создадите контроллер представления для загрузки пера, вы будете создавать представление в пике, поэтому вам определенно не следует создавать такое же представление в коде.
Вам не нужно создавать контроллер представления для большинства представлений. Чаще всего каждый контроллер владеет одним и тем же окном. Единственный раз, когда вам нужны контроллеры представлений, это когда вы управляете сложной иерархией представлений в одном окне (скорее всего, если вы сделаете свое приложение однооконным).
… (после очистки текущего представления).
В «Какао» нет «текущего представления». У вас может быть несколько окон, и у каждого из них есть глубокая иерархия представления, которую вы обычно не редактируете во время выполнения. Менять одно представление на другое за пределами какого-либо интерфейса с вкладками очень необычно.
Создание объекта просмотра в коде
Отправьте желаемому классу представления сообщение alloc
, а возвращенному представлению - сообщение initWithFrame:
(если иное не предусмотрено документацией класса). Вам, конечно, нужно будет разблокировать или автоматически выпустить это представление.
Создание объекта представления в кончике
Предоставление собственного пера (особенно для контроллеров представления)
Используйте шаблон view-nib в IB (New) или Xcode (Add File). Если вы создаете его в Xcode, не забудьте получить информацию о нем и сделать его локализуемым. Если вы создаете его в IB, вы должны сохранить его в одну из ваших папок .lproj; тогда он уже будет локализован.
Перо, созданное из этих шаблонов, будет содержать один пустой NSView. Вы можете изменить его класс и / или добавить подпредставления, как описано ниже.
Создание в существующем наконечнике
Перетащите «Пользовательский вид» из палитры «Библиотека» в окно пера, затем установите класс вида в Инспекторе №6.
Вы делаете это только для представления верхнего уровня в кончике. Для его подпредставлений, см. Ниже.
Помещение представления в иерархию представления окна
Если представление должно быть корнем иерархии представления окна (представление содержимого окна)
Установить вид содержимого окна.
В IB вы не можете изменить вид содержимого окна. Вместо этого вы что-то меняете - его класс, подпредставления и т. Д. Нет смысла пытаться заменить представление содержимого окна другим представлением в IB.
Если представление должно быть подпредставлением существующего представления
Способ сделать это в коде - отправить суперпредставлению сообщение addSubview:
.
Если оба представления находятся в одном и том же наконечнике, создайте подпредставление и добавьте его в суперпредставление в одном действии. Перетащите «Пользовательский вид» из библиотеки в суперпредставление, а не в окно пера, затем установите класс подпредставления в Инспекторе №6.
(Если вы настраиваете одно из стандартных представлений Apple, вместо создания полностью оригинального настраиваемого представления, перетащите стандартное представление Apple, на котором вы основали свое представление, из библиотеки, а затем измените его класс на настроенный подкласс.)