Контрольный список управления панелью инструментов
Прежде чем Вы начнете кодировать:
Если у Вас есть основанные на изображении элементы панели инструментов, найдите или создайте изображения (в надлежащем размере и форматном соотношении) и добавьте их к своему проекту как ресурс.
Если Вы имеете основанные на представлении элементы панели инструментов, создаете каждое представление в Интерфейсном Разработчике, укажите выход для пользовательского объекта контроллера и подключите представление к выходу.
Если представление является стандартным объектом палитры, просто сделайте соединение розетки.
Укажите или (для элементов панели инструментов по умолчанию) идентифицируют уникальные идентификаторы строки, которые Вы намереваетесь использовать для элементов панели инструментов и панелей инструментов.
Добавьте к меню приложения (обычно называемое Представление) пункты меню Show Toolbar и Customize Toolbar..., подключите их к значку First Responder в окне файла пера и выберите действия
toggleToolbarShown:
иrunToolbarCustomizationPalette:
. (Обратите внимание на то, чтоNSWindow
автоматически изменения “Показывают Панель инструментов” для “Сокрытия Панели инструментов” как надлежащей.)
Для получения дополнительной информации посмотрите Добавление и Удаление Элементов Панели инструментов.
Что происходит: запуски приложения или документ созданы или открыты, заставив файл пера быть загруженными, и его объект разархивирован.
Пользовательский класс контроллера в
awakeFromNib
или, для основанных на документе приложений,NSDocument
подкласс вwindowControllerDidLoadNib:
завершает следующие шаги для каждой панели инструментов, которую это использует:Это делает новое
NSToolbar
объектное использованиеinitWithIdentifier:
.Если значения по умолчанию не сделают использования, это устанавливает атрибуты панели инструментов
setAllowsUserCustomization:
,setAutosavesConfiguration:
, иsetDisplayMode:
.Это устанавливает делегата панели инструментов (обычно само).
Это связывается, панель инструментов с окном путем отправки NSWindow возражают a
setToolbar:
сообщение.
Для получения дополнительной информации посмотрите Добавление и Удаление Элементов Панели инструментов
Что происходит: NSToolbar
объект начинает связываться с его делегатом для заполнения панели инструментов с элементами панели инструментов.
Окно получает позволенные и идентификаторы элемента панели инструментов по умолчанию:
Вызовы объектов панели инструментов метод делегата
toolbarAllowedItemIdentifiers:
получить общий набор возможных элементов панели инструментов.Если это не находит конфигурацию панели инструментов по умолчанию в пользовательских настройках, панель инструментов вызывает метод делегата
toolbarDefaultItemIdentifiers:
получить набор по умолчанию.Сохранить конфигурацию по умолчанию к и читать из пользовательских настроек,
NSToolbar
объектautosavesConfiguration
атрибут должен быть установлен.Если определенные элементы панели инструментов должны указать выбранное состояние, делегат должен реализовать
toolbarSelectableItemIdentifiers:
возвратить идентификаторы тех элементов панели инструментов.
Окно просит каждого
NSToolbarItem
объект (идентификатором) для вставки на панель инструментов.Добавить каждый элемент панели инструментов к панели инструментов,
NSToolbar
объект отправляетtoolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:
делегату.Если
NSToolbarItem
объект основан на изображении, получите изображение от комплекта приложений (например, при помощиNSImage
метод классаimageNamed:
) и отправьтеsetImage:
к элементу панели инструментов. Также установите метку элемента панели инструментов, метку палитры, цель и действие. Можно также установить представление формы меню.Если элемент панели инструментов основан на представлении, отправить
setView:
к объекту элемента панели инструментов, передающему в выходе представлению. Также установите метку элемента панели инструментов, метку палитры, ее минимальный размер (minSize
), и его максимальный размер (maxSize
). (Если Вы не устанавливаете aminSize
иmaxSize
, представление не появляется, потому что оно измерено для обнуления в обеих размерностях.) Можно также установить представление формы меню.Если делегат хочет настроить элемент панели инструментов, прежде чем он будет добавлен, он может также реализовать
toolbarWillAddItem:
метод уведомления.
Для получения дополнительной информации посмотрите Добавление и Удаление Элементов Панели инструментов, Установку Представления Элемента Панели инструментов, Установку Размера Элемента Панели инструментов и Установку Размера Элемента Панели инструментов.
Что происходит: Пользователи щелкают по элементам панели инструментов; контекст во время выполнения изменений приложений.
Объявите и реализуйте методы действия для каждого из Ваших пользовательских элементов панели инструментов, обычно в пользовательском классе контроллера.
При создании элемента панели инструментов, можно идентифицировать селектор каждого из этих методов через
setAction:
методNSToolbarItem
. Также поставьте цель путем вызоваsetTarget:
, обычно передача вself
.Проверьте элементы панели инструментов.
Если элемент панели инструментов основан на изображении, цель действия должна реализовать
validateToolbarItem:
если это хочет проверку, более специализированную, чем значение по умолчанию. Если элемент панели инструментов основан на представлении, необходимо создать подклассNSToolbarItem
для элемента и переопределенияvalidate
метод.
Для получения дополнительной информации посмотрите Элементы Панели инструментов Проверки.
Что происходит: пользователь выбирает пункт меню Customize Toolbar.
Поскольку лист настройки открывается, вызовы объектов панели инструментов методы делегата
toolbarAllowedItemIdentifiers:
иtoolbarDefaultItemIdentifiers:
. Тогда, поскольку панель инструментов добавляет каждый элемент панели инструментов к палитре настройки, это отправляет делегату, если вид элемента является пользовательским изображением или пользовательским представлением.Когда пользователь добавляет элемент к панели инструментов, панель инструментов вызывает метод делегата
toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:
; если новый экземпляр элемента панели инструментов необходим, панель инструментов отправляетtoolbarWillAddItem:
делегату непосредственно перед тем, как это добавляет элемент.Сразу после того, как пользователь удаляет элемент из панели инструментов, панель инструментов отправляет
toolbarDidRemoveItem:
делегату.Когда пользователь перетаскивает набор по умолчанию на панель инструментов, повторные использования панели инструментов как можно больше элементов уже на панели инструментов, вызывая
toolbarDidRemoveItem:
для элементов это должно удалить и вызовtoolbarWillAddItem:
для тех это должно добавить.
Когда пользователь закрывает лист настройки, Обратите внимание на то, что панель инструментов не вызывает методов делегата.