В Applescript, как я могу узнать, выбирается ли пункт меню/фокусируется?

Вы можете найти этот урок интересным.

Если вы можете превратить то, что вам нужно, в анимацию matplotlib, и я уверен, что из вашего описания, что это возможно, вы затем можно использовать

from matplotlib import rc, animation
rc('animation', html='html5')

и отобразить анимацию с помощью

anim = animation.FuncAnimation(fig, animate, init_func=init,
                               frames=N, interval=20, blit=True)
anim

Может пригодиться!

5
задан 11 revs, 2 users 99% 23 May 2017 в 12:30
поделиться

3 ответа

Используя/Developer/Applications/Utilities/Accessibility Инструменты/Доступность Inspector.app можно использовать встроенную систему доступности для рассмотрения свойств элемента UI под мышью. Обратите особое внимание на cmd-F7 действие для блокировки внимания на элемент и Кнопку Обновить. Печально элемент и имена свойства непосредственно не соответствуют именам в комплекте сценария, но можно посмотреть на словарь для Системных событий или обычно предполагать правильную терминологию.

Используя это можно определить две вещи. Во-первых, focused свойство не находится на menu item, а скорее существует a text field в menu item это фокусируется. Во-вторых, пункт меню имеет a selected свойство.

С этим я придумал:

tell application "System Events"
    tell (first process whose frontmost is true)
        set helpMenuItem to menu bar item "Help" of menu bar 1

        -- Use reference form to avoid building intermediate object specifiers, which Accessibility apparently isn't good at resolving after the fact.
        set searchBox to a reference to menu item 1 of menu of helpMenuItem
        set searchField to a reference to text field 1 of searchBox

        if searchField's focused is true then
            key code 53 -- type esc
        else
            click helpMenuItem
        end if
    end tell
end tell

Хотя это все еще не работает. Ключевое событие не стреляет насколько я могу сказать, таким образом, что-то может все еще быть подозрительным с focused свойство на текстовом поле.

Так или иначе, Ваш click снова решение кажется намного легче.

2
ответ дан 13 December 2019 в 19:39
поделиться

Созданный в ключевом ярлыке Cmd-? (Cmd-сдвиг-/), уже ведет себя как это. Это перемещает центр внимания в поле поиска меню справки, если это уже не фокусируется и иначе отклоняет меню.

4
ответ дан 13 December 2019 в 19:39
поделиться

Я просто столкнулся с необходимостью сделать это сам для обработки файлов в Illustrator.

Здесь вот что я придумал:

tell application "Adobe Illustrator"
activate
tell application "System Events"
    tell process "Illustrator"
        set frontmost to true
        set activeMenuItem to enabled of menu item "Unlock All" of menu "Object" of menu bar item "Object" of menu bar 1
        if activeMenuItem is true then
            tell me to beep 3
        else
            tell me to beep 2
        end if
    end tell
end tell
end tell

Готово.

Это сработало без проблем и могло использоваться для итерации файла. Вероятно, мне придется делать это еще много раз в моей будущей автоматизации.

Удачи!

2
ответ дан 13 December 2019 в 19:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: