добавление панели настроек в приложение - PullRequest
2 голосов
/ 02 февраля 2011

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

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

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

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

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

Спасибо!

Ответы [ 2 ]

2 голосов
/ 03 февраля 2011

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

0 голосов
/ 27 июня 2016

Существует очень простой способ открыть настройки с помощью сценария 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.

...