Контрольный список управления панелью инструментов
Прежде чем Вы начнете кодировать:
Если у Вас есть основанные на изображении элементы панели инструментов, найдите или создайте изображения (в надлежащем размере и форматном соотношении) и добавьте их к своему проекту как ресурс.
Если Вы имеете основанные на представлении элементы панели инструментов, создаете каждое представление в Интерфейсном Разработчике, укажите выход для пользовательского объекта контроллера и подключите представление к выходу.
Если представление является стандартным объектом палитры, просто сделайте соединение розетки.
Укажите или (для элементов панели инструментов по умолчанию) идентифицируют уникальные идентификаторы строки, которые Вы намереваетесь использовать для элементов панели инструментов и панелей инструментов.
Добавьте к меню приложения (обычно называемое Представление) пункты меню 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:для тех это должно добавить.
Когда пользователь закрывает лист настройки, Обратите внимание на то, что панель инструментов не вызывает методов делегата.