Задачи мозаики прикрепления для приложений углерода
Существует две вещи, которые можно сделать для настройки мозаики Прикрепления приложения — изменяют Значок панелей или добавляют пользовательские элементы к меню Dock. Если Вы хотите изменить Значок панелей своего приложения, посмотрите пример приложения Tiler.
Необходимо также видеть Ссылку Администратора приложений для описания функций, которые можно использовать, чтобы изменить и восстановить Значок панелей приложения.
Эта глава показывает Вам три способа, которыми можно добавить пользовательские элементы меню к меню для мозаики Прикрепления приложения.
Добавьте свойство к информационному списку свойств приложения. Если Ваше приложение является пакетом и только должно добавить статические пункты меню, то самый простой способ добавить пользовательские элементы к меню состоит в том, чтобы добавить свойство
AppleDockMenu
к приложениюInfo.plist
файл. Посмотрите Добавление Свойства к информационному Списку свойств.Используйте функции
SetApplicationDockTileMenu
иGetApplicationDockTileMenu
. Если Ваше приложение не является пакетом или если оно должно создать меню во время выполнения, то можно использовать эти функции, чтобы установить и получить элементы в меню. Посмотрите Используя Функции меню Мозаики Прикрепления Приложения.Обработайте событие меню мозаики Прикрепления. Если Ваше приложение должно создать меню в то время, когда пользователь щелкает по значку приложения в Прикреплении, можно установить обработчик для обработки связанного события Carbon — класс событий
kEventClassApplication
и вид событияkEventAppGetDockTileMenu
. Посмотрите обработку получить события меню мозаики прикрепления.
Независимо от метода Вы используете для настройки приложения меню Dock, каждый пользовательский элемент меню должен иметь команду ID, или приложение не будет уведомлено менеджером событий Углерода, когда будет выбран тот элемент.
Если Вы хотите добавить значок к элементу в Вашем приложении меню Dock, посмотрите Добавление Значка к Пункту меню Прикрепления.
Добавление свойства к информационному списку свойств
Можно настроить меню для приложения мозаика Прикрепления путем выполнения следующего:
Создайте меню в Интерфейсном Разработчике.
Добавьте свойство к информационному списку свойств своего приложения для указания имени Интерфейсного файла Разработчика, содержащего меню.
Как только Вы делаете это, Углерод автоматически загружает файл пера, создает меню и обеспечивает его для Прикрепления. Каждый шаг детализирован в следующих разделах.
Создание меню в интерфейсном разработчике
Необходимо открыть Interface Builder от файла Разработчика приложения Проекта, затем создать новый файл пера только для меню. (См. Изучение Углерода для получения информации об использовании Интерфейсного Разработчика.) Меню должно содержать только те элементы, которые Вы хотите добавить к меню Dock Вашего приложения; стандартные товары (см. Меню Прикрепления) добавляются автоматически. Рисунок 4-1 показывает пользовательские элементы для меню, это создается в Интерфейсном Разработчике.
Каждый пункт меню должен иметь связанную команду с четырьмя символами, это уникально для Вашего приложения. Команда - то, что менеджер событий Углерода обеспечивает для Вашего приложения для сообщения, какой элемент был выбран пользователем. Пункт меню Next Song на рисунке 4-1 имеет команду NEXT
.
Рисунок 4-2 показывает область Interface Builder Instances для TestDockMenu.nib
файл. Этот файл содержит два элемента, меню для Прикрепления, названного DockMenu
, и подменю для меню, названного Submenu
.
Добавление свойства для меню прикрепления
Выполните эти шаги для добавления AppleDockMenu
свойство к информационному списку свойств для Вашего приложения.
Откройте проект своего приложения в Разработчике Проекта.
Щелкните по вкладке Targets, затем щелкните по надлежащей цели в Целевом списке.
Щелкните по вкладке Application Settings, затем нажмите Expert.
Нажмите кнопку New Sibling.
Ввести
AppleDockMenu
в столбце Property List.Удостоверьтесь, что класс установлен представить в виде строки.
В Столбце значений введите имя Интерфейсного файла пера Разработчика, содержащего объект меню Прикрепления, но не включайте
.nib
расширение.Рисунок 4-3 показывает информационный список свойств, как это появляется в Разработчике Проекта. Отметьте значение
AppleDockMenu
свойство является строкойTestDockMenu
. Это подразумевает имя файла пера, содержащего пункты меню Dock,TestDockMenu.nib
. Необходимо удостовериться значение, которое Вы добавляете, соответствует имя файла пера, который Вы создаете для своего меню Dock.Сборка и запущенный приложение.
Используя функции меню мозаики прикрепления приложения
Если Ваше приложение не является пакетом или если оно должно создать меню приложения во время выполнения, то можно использовать функции SetApplicationDockTileMenu
и GetApplicationDockTileMenu
установить и получить элементы в меню.
Можно использовать любой метод (например, Интерфейсный менеджер по Разработчику или Меню функции), чтобы определить и создать меню, содержащее пользовательские элементы. Независимо от того, как Вы создаете меню, каждый пункт меню должен иметь связанную команду с четырьмя символами, это уникально для Вашего приложения.
Как только меню создается, Вы передаете ссылку на свое меню к функции SetApplicationDockTileMenu
. Элементы в меню, которое Вы передаете функции, вставляются в список между списком окон документа и стандартными товарами.
Функция SetApplicationDockTileMenu
постепенно увеличивает подсчет ссылок меню, которое Вы передаете ему. Прежде чем меню выведено на экран, оно получает события Carbon kEventMenuPopulate
, kEventMenuOpening
, и kEventMenuEnableItems
, таким образом, любые обработчики событий для этих событий могут обновить меню соответственно.
Обработка получить событие меню мозаики прикрепления
Если Ваше приложение должно создать меню в то время, когда пользователь щелкает по значку приложения в Прикреплении, можно установить обработчик для обработки события Carbon, которое имеет класс событий kEventClassApplication
и вид события kEventAppGetDockTileMenu
. Обработчик по умолчанию для этого события возвращает меню, предоставленное SetApplicationDockTileMenu
или меню расположилось в файле пера для меню Dock, если это существует.
Можно переопределить обработчик по умолчанию путем записи и установки собственного обработчика событий Углерода. Ваше приложение должно создать пользовательское меню, и Ваш обработчик должен вызвать функцию менеджера событий Углерода SetEventParameter
с параметром события Углерода kEventParamMenuRef
и ссылка на меню Вы хотите быть выведенными на экран, как показано в Перечислении 4-1.
Перечисление 4-1 , Передающее ссылку меню на функциональный SetEventParameter
err = SetEventParameter (inEvent, |
kEventParamMenuRef, |
typeMenuRef, |
sizeof(menuRef), |
&myCustomApplicationDockMenu |
); |
Углерод выпускает ссылку меню после того, как меню будет передано Прикреплению, так убедиться сохранить ссылку меню с менеджером по Меню функция RetainMenu
если Вы хотите сохранить ссылку меню для более позднего использования.
Добавление значка к пункту меню прикрепления
Если Вы хотите вывести на экран значок рядом с элементом в Вашем приложении меню Dock (как показано на рисунке 1-4), необходимо вызвать функцию SetMenuItemIconHandle
с одним из новых селекторов, предоставленных менеджером по Меню —kMenuSystemIconSelectorType
или kMenuIconResourceType
. Если Ваше приложение использует стандартный системный значок, предоставленный Icon Services, необходимо использовать селектор kMenuSystemIconSelectorType
, как показано в Перечислении 4-2. Для загрузки значка необходимо вызвать функцию Icon Services GetIconRef
.
Перечисление 4-2 Используя стандартный системный значок в Меню Прикрепления приложения
SetMenuItemIconHandle (myMenu, |
1, |
kMenuSystemIconSelectorType, |
(Handle) kGenericApplicationIcon); |
Если Вы приложение используете a .icns
файл расположился в комплекте приложений, необходимо использовать селектор kMenuIconResourceType
с функцией SetMenuItemIconHandle
, как показано в Перечислении 4-3. inIconHandle
параметр к этой функции должен быть a CFStringRef
это указывает имя .icns
файл. Менеджер по Меню определяет местоположение файла и регистрируется IconRef
для значка, указанного в файле, и затем, выводит на экран значок с пунктом меню. CFStringRef
сохраняется менеджером по Меню.
Перечисление 4-3 Используя значок указано в .icns файле
SetMenuItemIconHandle (myMenu, |
2, |
kMenuIconResourceType, |
(Handle) CFSTR("mySpecialIcon.icns") ); |