Задачи мозаики прикрепления для приложений углерода

Существует две вещи, которые можно сделать для настройки мозаики Прикрепления приложения — изменяют Значок панелей или добавляют пользовательские элементы к меню Dock. Если Вы хотите изменить Значок панелей своего приложения, посмотрите пример приложения Tiler.

Необходимо также видеть Ссылку Администратора приложений для описания функций, которые можно использовать, чтобы изменить и восстановить Значок панелей приложения.

Эта глава показывает Вам три способа, которыми можно добавить пользовательские элементы меню к меню для мозаики Прикрепления приложения.

Независимо от метода Вы используете для настройки приложения меню Dock, каждый пользовательский элемент меню должен иметь команду ID, или приложение не будет уведомлено менеджером событий Углерода, когда будет выбран тот элемент.

Если Вы хотите добавить значок к элементу в Вашем приложении меню Dock, посмотрите Добавление Значка к Пункту меню Прикрепления.

Добавление свойства к информационному списку свойств

Можно настроить меню для приложения мозаика Прикрепления путем выполнения следующего:

  1. Создайте меню в Интерфейсном Разработчике.

  2. Добавьте свойство к информационному списку свойств своего приложения для указания имени Интерфейсного файла Разработчика, содержащего меню.

Как только Вы делаете это, Углерод автоматически загружает файл пера, создает меню и обеспечивает его для Прикрепления. Каждый шаг детализирован в следующих разделах.

Создание меню в интерфейсном разработчике

Необходимо открыть Interface Builder от файла Разработчика приложения Проекта, затем создать новый файл пера только для меню. (См. Изучение Углерода для получения информации об использовании Интерфейсного Разработчика.) Меню должно содержать только те элементы, которые Вы хотите добавить к меню Dock Вашего приложения; стандартные товары (см. Меню Прикрепления) добавляются автоматически. Рисунок 4-1 показывает пользовательские элементы для меню, это создается в Интерфейсном Разработчике.

Каждый пункт меню должен иметь связанную команду с четырьмя символами, это уникально для Вашего приложения. Команда - то, что менеджер событий Углерода обеспечивает для Вашего приложения для сообщения, какой элемент был выбран пользователем. Пункт меню Next Song на рисунке 4-1 имеет команду NEXT.

Рисунок 4-1  , Устанавливающий команду для пользовательского элемента в меню
Setting the command for a custom item in a contextual menu

Рисунок 4-2 показывает область Interface Builder Instances для TestDockMenu.nib файл. Этот файл содержит два элемента, меню для Прикрепления, названного DockMenu, и подменю для меню, названного Submenu.

  Объекты меню рисунка 4-2 для меню Dock
Menu objects for a Dock menu

Добавление свойства для меню прикрепления

Выполните эти шаги для добавления AppleDockMenu свойство к информационному списку свойств для Вашего приложения.

  1. Откройте проект своего приложения в Разработчике Проекта.

  2. Щелкните по вкладке Targets, затем щелкните по надлежащей цели в Целевом списке.

  3. Щелкните по вкладке Application Settings, затем нажмите Expert.

  4. Нажмите кнопку New Sibling.

  5. Ввести AppleDockMenu в столбце Property List.

  6. Удостоверьтесь, что класс установлен представить в виде строки.

  7. В Столбце значений введите имя Интерфейсного файла пера Разработчика, содержащего объект меню Прикрепления, но не включайте .nib расширение.

    Рисунок 4-3 показывает информационный список свойств, как это появляется в Разработчике Проекта. Отметьте значение AppleDockMenu свойство является строкой TestDockMenu. Это подразумевает имя файла пера, содержащего пункты меню Dock, TestDockMenu.nib. Необходимо удостовериться значение, которое Вы добавляете, соответствует имя файла пера, который Вы создаете для своего меню Dock.

  8. Сборка и запущенный приложение.

  Свойство Figure 4-3 The AppleDockMenu
The AppleDockMenu property

Используя функции меню мозаики прикрепления приложения

Если Ваше приложение не является пакетом или если оно должно создать меню приложения во время выполнения, то можно использовать функции 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") );