Реализация предпочтительного меню справки области

Этот раздел берет Вас через шаги для добавления контекстно-зависимых записей Меню справки для предпочтительной области. Можно реализовать привязки к Средству просмотра Справки двумя различными способами, оба, которые могут предоставить пользователю определенную помощь, доступную из их Меню справки. Если Вы уже создали скелетную предпочтительную область, как описано в Создании Предпочтительного Пакета Области, можно использовать его здесь. Или, можно создать новую предпочтительную область и обратиться к следующим инструкциям, где это необходимо.

Добавление глобальных элементов меню справки

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

Во-первых, необходимо создать некоторый материал справки, если Вы не соединяетесь с существующим материалом по системе. Если Вы не знакомы с созданием содержания для Средства просмотра Справки Mac OS X, обратитесь к Руководству по программированию Справки Apple.

Во-вторых, необходимо добавить записи в значения массива NSPrefPaneHelpAnchors ключ в Вашем Info.plist файл. Вы статически определите каждую привязку с помощью связанного заголовка. Заголовок представляет строковое значение пункта меню, который выведет на экран книгу справки, указанную привязкой. Например, если Вы хотели добавить “Демонстрационную Справку” элемент в Меню справки для Вашей предпочтительной области, которая откроет книгу, отмеченную SMPL001 привязка, добавляет это к Вашему Info.plist файл:

Перечисление 1  запись Info.plst для элемента Меню справки SMPL001

<key>NSPrefPaneHelpAnchors</key>
<array>
    <dict>
        <key>title</key>
        <string>Sample Help</string>
        <key>anchor</key>
        <string>SMPL001</string>
    </dict>
</array>

Как только предпочтительная область загружается приложением Установок системы, новый пункт меню в Меню справки, вызванном “Демонстрационная Справка”, появится. Когда выбрано, это загрузит книгу Help, указанную SMPL001 привязка.

Можно также локализовать элемент Меню справки для предпочтительной области. В примере выше, Вы заменили бы “Демонстрационную Справку” строка некоторой внутренней строкой, такой как SAMPLE_PREFPANE_MENU_TITLE. Тогда в файле Локэлизэбле.стрингса для всех Ваших языков, Вы добавили бы надлежащую запись для переопределения этой внутренней строки:

Перечисление 2  английская запись Локэлизэбле.стрингса для элемента Меню справки SMPL001

"SAMPLE_PREFPANE_MENU_TITLE" = "Sample Help";

Перечисление 3  французская запись Локэлизэбле.стрингса для элемента Меню справки SMPL001

"SAMPLE_PREFPANE_MENU_TITLE" = "Aide Sample";

Добавление динамических элементов меню справки

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

Можно выполнить это с методом updateHelpMenuWithArray:. Этот метод, реализованный в платформе PreferencePanes, вызывают с одним параметром, массивом словарей, соответствующих тому же формату как массив и словари в Добавлении Глобальных Элементов Меню справки. Вместо того, чтобы добавить элементы статически в Info.plist файл, Вы создаете динамический NSArray и объекты NSDictionary и передаете тех в этот метод, который обновит Меню справки соответственно.

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

  Меню справки Listing 4 Dynamic для представления вкладки

- (void)tabView:(NSTabView *)tabView didSelectTabViewItem:(NSTabViewItem  *)tabViewItem
{
    NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:
        [tabViewItem identifier], @"title",
        @"SMPL001", @"anchor",
        NULL];
 
    NSArray *array = [NSArray arrayWithObject:dictionary];
 
    [self updateHelpMenuWithArray:array];
}

Обратите внимание на то, что строка заголовка, используемая в этом вызове метода, не локализуема с файлом Локэлизэбле.стрингса. Если Вы хотите локализовать заголовок элемента меню справки, необходимо сделать так программно или идентификаторы использования от специфичного для языка файла пера, продемонстрированного в примере выше.