отримати перемикачі в системних налаштуваннях


0

Я намагаюся натиснути на радіо кнопки на панелі "Відображення" системних переваг. Це код, який я використовую для ідентифікації радіо кнопок:

tell application "System Preferences"
    activate
    reveal anchor "displaysDisplayTab" of pane id "com.apple.preference.displays"
end tell
tell application "System Events"
    tell application process "System Preferences"

        set frontmost to true
        get every radio button of window 0 // returns {} -> empty array

    end tell
end tell

Повернені радіо кнопки - жодні. Виходячи з того, що я бачу, у вікні є нульові кнопки перемикання. Це призводить до висновку, що перемикачі є частиною підвікна, а саме підвідкриття Відображає, а не головне. Як я можу перейти до цього "підвікна" та натиснути радіо кнопки?

введіть тут опис зображення


Це може належати на переповнення стека, мій друже ... AppleScript насправді не рекомендується. @sanjihan
bret7600

@ bret7600 Питання AppleScript тут ідеально оновлені, будь ласка, перевірте поширені запитання .
nohillside

Відповіді:


1

Перемикачі містяться в радіогрупі, а група радіо - у групі вкладок. Отже наступний код дасть вам назви радіо кнопок.

Також потрібно поставити затримку між відкриттям вікна та спробою розмови з ним. Навіть на SSD, обладнаному Macbook Pro. Можливо, вам доведеться збільшити затримку, якщо ви перебуваєте на Mac, обладнаному жорстким диском.

tell application "System Preferences"
    activate
    set current pane to pane "com.apple.preference.displays"
end tell
tell application "System Events"
    tell application process "System Preferences"
        set frontmost to true
        delay 1
        tell tab group 1 of window "Built-In Retina Display"
            tell radio group 1
                get every radio button
            end tell
        end tell
    end tell
end tell

Крім того, для стислості я поміняв лінію set current pane to pane "com.apple.preference.displays"для reveal anchor "displaysDisplayTab" of pane id "com.apple.preference.displays".

Якщо ви намагаєтеся розробити спосіб збирання інтерфейсу користувача, дуже корисним інструментом є «Інспектор доступності». Просто запустіть його, і він буде плавати над вашими вікнами. Потім наведіть курсор на все, що ви хочете зрозуміти, і він покаже вам ієрархію того, як збираються компоненти інтерфейсу користувача.

Знімок екрана інспектора доступності, який виконує свою роботу


Я оновив свою відповідь поясненням, як я це розробив. :)
Алістер Макміллан

1
Цей інструмент - рятівник життя!
санджіхан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.