2

Я хотел бы включить свою панель настроек, чтобы показать определенную вкладку из компании Apple Script, так что:установки панели настроек имя якоря

tell application "System Preferences" 
    reveal anchor "Foo" of pane id "com.example.preferences.Bar" 
end tell 

Я нигде не могу найти, как мое предпочтение панели будет объявлять или указать «Foo «привязать или связать это с любым элементом просмотра табуляции.

+1

Google GPGPreferences.searchTerms словарь revealElementForKey для некоторых подсказок ... (AFAIK это нигде не документированы ...) – geowar

+0

поиска также developer.apple.com для NSPrefPaneHelpAnchors ... (надеюсь, что это помогает ... ;-) – geowar

+0

Если вы не» t получить удовлетворительный ответ, обратитесь в службу технической поддержки разработчиков Apple () для «официального» ответа. – geowar

ответ

1

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

Наибольший намек был из @geowar:

Google GPGPreferences.searchTerms словарь revealElementForKey для некоторых подсказок ... (AFAIK это нигде не документированы ...)

я проглядел этот комментарий первым время я пришел к этому вопросу, во второй раз я посмотрел на файл GPGPreferences.m, точнее на метод revealElementForKey, но не смог понять, как вызвана функция.

Ключевое слово: searchTerms.

Я только осознал это, когда наконец нашел эту статью SearchablePreferencePanes.

Шаги:

  1. Добавить NSPrefPaneSearchParameters ключ к Info.plist вашему предпочтению панели расслоения со значением что-то вроде MyPreferencePane.
  2. Создайте файл с именем MyPreferencePane.searchTerms в своем проекте Xcode. Содержимое этого файла должно быть списком свойств, содержащим словарь, который выглядит примерно так, как показано ниже (взято из панели предпочтений Sound). Это позволит не только пользователям получать хит для вашей области предпочтений при поиске указанных условий, но также будет генерировать якоря для панели предпочтений.
  3. Внесите метод revealElementForKey(key: String) в свой класс, который наследуется от NSPreferencePane. Этот метод будет вызываться как при открытии пользователем окна после поиска термина, так и при вызове метода reveal() для класса привязки ScriptingBridge.
  4. Boom!

Наслаждайтесь жизнью.

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>effects</key> 
    <dict> 
     <key>localizableStrings</key> 
     <array> 
      <dict> 
       <key>comments</key> 
       <string>Localizable index words</string> 
       <key>index</key> 
       <string>noises, audio, hear, level, volume, louder, softer, quieter, increase, decrease, raise, lower, speaker, beep, warning, bell, ding, ring, hearing, beeping, dinging, ringing</string> 
       <key>title</key> 
       <string>Alerts and sound effects</string> 
      </dict> 
      <dict> 
       <key>comments</key> 
       <string>Localizable index words</string> 
       <key>index</key> 
       <string>audio, hear, level, volume, louder, softer, quieter, increase, decrease, raise, lower, music, speakers, hearing</string> 
       <key>title</key> 
       <string>Sound volume</string> 
      </dict> 
      <dict> 
       <key>comments</key> 
       <string>Localizable index words</string> 
       <key>index</key> 
       <string>audio, hear, level, volume, louder, softer, quieter, increase, decrease, raise, lower, quiet, silent, silence, turn off, hearing, muting</string> 
       <key>title</key> 
       <string>Mute the sound</string> 
      </dict> 
      <dict> 
       <key>comments</key> 
       <string>Localizable index words</string> 
       <key>index</key> 
       <string>menubar</string> 
       <key>title</key> 
       <string>Show volume in menu bar</string> 
      </dict> 
     </array> 
    </dict> 
    <key>input</key> 
    <dict> 
     <key>localizableStrings</key> 
     <array> 
      <dict> 
       <key>comments</key> 
       <string>Localizable index words</string> 
       <key>index</key> 
       <string>audio, hear, level, volume, louder, softer, quieter, increase, decrease, raise, lower, devices, sources, microphones, instruments, MIDI, record, line in, hearing, recording</string> 
       <key>title</key> 
       <string>Sound input</string> 
      </dict> 
     </array> 
    </dict> 
    <key>output</key> 
    <dict> 
     <key>localizableStrings</key> 
     <array> 
      <dict> 
       <key>comments</key> 
       <string>Localizable index words</string> 
       <key>index</key> 
       <string>devices, headphones, headsets, speakers, hear, balance, hearing, head phones, head sets</string> 
       <key>title</key> 
       <string>Sound output</string> 
      </dict> 
      <dict> 
       <key>comments</key> 
       <string>Localizable index words</string> 
       <key>index</key> 
       <string>airplay, speakers</string> 
       <key>title</key> 
       <string>AirPlay audio streaming</string> 
      </dict> 
     </array> 
    </dict> 
</dict> 
</plist> 
0

Сначала вы должны убедиться, что то, что вы ищете, является якорем, а не другим типом объекта. Затем используйте скрипт ниже, чтобы получить каждые имена анкерных: (в этом примере получить якорь звуковых предпочтений дадут «выход», «вход», ..)

tell application "System Preferences" 
activate 
set current pane to pane id "com.apple.preference.sound" 
get the name of every anchor of current pane 
end tell 
+0

Я хочу добавить якорь в свой собственный проект. – abg