Добавление панели настроек в приложение

У меня есть приложение, которое находится в строке меню, очень похоже на это
приложение меню

И я пытаюсь создать для него панель настроек, как описано в документации Apple.
В этом руководстве показано, как создать плагин prefpane для системных настроек и окно настроек для автономного приложения. Тем не менее, во втором случае, кажется, что-то упущено.

Итак, у меня есть основной класс приложения с -(IBAction) displayPreferences:(id)sender; действие вызывается, когда пользователь нажимает "Настройки..." в меню.
И у меня также есть контроллер расширения NSPreferencePane и подключен к NSWindow объект в Интерфейсном Разработчике (просто нравится описание документов).

Вопрос в том, как их соединить? То есть,

-(IBAction) displayPreferences:(id)sender {
  // what do we write here to display preferences window?
}

Спасибо!

2 ответа

Решение

Если вы хотите, чтобы системные настройки были открыты для вашей панели настроек, вы можете создать файл URL для вашего .prefPane связать, а затем отправить это -[NSWorkspace openURL:], Если вы хотите четко указать параметры запуска, вы можете использовать -[NSWorkspace openURLs:withAppBundleIdentifier:options:additionalEventParamDescriptor:launchIdentifiers:],

Существует очень простой способ открыть настройки с помощью сценария Apple. Ну вот.

  1. Вы должны создать действие кнопки и установить выход предпочтений к действию кнопки
  2. А затем, просто сделайте следующий скрипт Apple, чтобы открыть основные настройки системы

    NSString *script = @"tell application \"System Preferences\"\n\tset the current pane to pane \"com.apple.preferences\"\n\tactivate\nend tell";
    
    
    NSAppleScript *appleScript = [[NSAppleScript alloc] initWithSource:script];
    [appleScript executeAndReturnError:nil];
    

Объект сценария может быть изменен в зависимости от того, где пользователь должен перемещаться. будь то настройки Bluetooth или настройки Wi-Fi.

Другие вопросы по тегам