Рисование "NSView" для пользовательского вида - как?Я правильно выбрал подход? - PullRequest
1 голос
/ 20 июня 2010

Я использую Objective-C и Cocoa при разработке для Mac OS X, а не iPhone / Cocoa Touch.(Тем не менее, мне было бы интересно, если бы это была та же процедура для iPhone)

Я работаю над окном настроек для простого приложения.У меня есть NSWindow с панелью инструментов - на панели инструментов есть 5 различных элементов, каждый из которых должен вызывать другой набор параметров.

Поэтому я устанавливаю панель NSToolbar и ее элементы в Интерфейсном Разработчике, а затемпоместил пользовательский вид под меню - занимая остальную часть окна.Мой план состоит в том, чтобы разработать интерфейс для каждого из параметров NSToolbarItems, а затем нарисовать соответствующее представление в пользовательском представлении при щелчке на указанном NSToolbarItem.-класс для каждого представления, пустой xib в Интерфейсном Разработчике - установите xib для моего собственного NSView, закодируйте его как обычно ... Но вот несколько проблем;

1 - Как я могу получить файл xibпоявиться на кастомном виде?Я осмотрелся, и в большинстве статей, похоже, нет такой ситуации или ситуации, которую я тоже могу связать.

2 - Когда появится окно, я хочу, чтобы представление по умолчанию отображалось в пользовательском представлении.Еще раз, я предполагаю, что просто напишу это в коде инициализации для NSWindow - это не страшно.Это просто возвращает нас к вопросу 1 - как мне нарисовать мой NSView в пользовательском представлении, указанном в Интерфейсном Разработчике?

Я был бы очень благодарен за любую помощь!Заранее.

1 Ответ

1 голос
/ 20 июня 2010

Итак, я установил NSToolbar и его элементы в Интерфейсном Разработчике, а затем поместил пользовательское представление под меню - заняв остальную часть окна.

Вы не можете иметьменю внутри окна.Вы можете иметь всплывающую кнопку, которая имеет меню, но не меню напрямую.Вы имели в виду «панель инструментов» здесь?

Вам не нужно создавать пользовательский вид для этого.Сделайте вид вкладки и установите его в качестве таблицы.Дайте ему столько элементов представления вкладок, сколько у вас есть элементов панели инструментов.В вашем контроллере напишите метод действия для каждого элемента панели инструментов и в каждом методе действия переключите активную вкладку представления вкладок.

Вы можете активировать различные вкладки в IB, чтобы заполнить их представлениями в IB,Активная вкладка сохраняется в перо, поэтому перед сохранением убедитесь, что вы вернули ее на первую вкладку, чтобы первая вкладка была той, которая изначально активна при запуске приложения.

Какможно ли заставить файл xib появляться в пользовательском представлении?

Этот вопрос не имеет смысла.

Еще раз, я думаю, я простонапишите, что в коде инициализации для NSWindow - нет ничего сложного.

Вы могли бы сделать это, только если у вас есть свой собственный код инициализации для окна, который вы бы имели, только если бы выимеют подклассы NSWindow.Есть очень мало причин для этого;если вы не заставляете само окно выглядеть по-другому (не делая окно Aqua или HUD), вы должны переместить этот код инициализации в другое место, возможно, на вышеупомянутый контроллер (который должен быть владельцем файла пера).

Это просто возвращает нас к вопросу 1 - как мне нарисовать мой NSView в пользовательском представлении, указанном в Интерфейсном Разработчике?

Пользовательское представление в Интерфейсном Разработчике - простой NSView (если вы явно не измените его на подкласс NSView, который вы создаете).Однако он вам не нужен для всего, что вы описали в своем вопросе.

...