Автоматизация пользовательского интерфейса, клавиатурные сокращения appleScript для элементов без меню Preview? - PullRequest
0 голосов
/ 18 января 2019

Я пытаюсь создать комбинацию клавиш для предварительного просмотра, а именно Draw и Sketch. Тем не менее, они являются элементами без меню, что означает, что это не может быть выполнено в Системных настройках. Я вижу, что кто-то сделал это из вдохновения , это возможно, но когда я пытаюсь следовать одному, вот мой код до сих пор и, пожалуйста, помогите мне завершить это. вот действие. enter image description here

Вот ошибка, с которой я сталкиваюсь сейчас enter image description here

после некоторых исследований помогает ли пользовательский интерфейс / инспектор доступности UI inspector?

activate application "Preview"
        delay 0.4
    set the menuItem to "Draw"
    tell application "System Events"
        try
            tell application process "Preview" to click radio button menuItem of radio group 1 of splitter group 1 of window 1
        on error
            try
                tell application process "Preview" to click radio button menuItem of radio group 1 of window 1
            on error errorM

                display dialog errorM

            end try
        end try
    end tell

в идеале, пытаясь заставить его работать, когда все бары скрыты, но если не возможно. Можем ли мы заставить его работать с показанной полосой разметки. как ниже.

enter image description here

1 Ответ

0 голосов
/ 18 января 2019

Это работает для меня, используя последнюю версию macOS Mojave

tell application "Preview" to activate
repeat while application "Preview" is not running
    delay 0.2
end repeat
tell application "System Events"
    try
        click menu item "Show Markup Toolbar" of menu 1 of menu bar item "View" of menu bar 1 of application process "Preview"
    end try
    delay 0.5
    try
        click menu item "Show Toolbar" of menu 1 of menu bar item "View" of menu bar 1 of application process "Preview"
    end try
    delay 0.5
    repeat while not (exists of toolbar 1 of window 1 of application process "Preview")
        delay 0.2
    end repeat
    set description2 to a reference to every checkbox of toolbar 1 of window 1 of application process "Preview"
    set theCheckboxes to description of description2

    if item 1 of theCheckboxes is "Draw" then
        set checkBoxDraw to 1
    else
        set checkBoxDraw to 2
    end if
    if item 1 of theCheckboxes is "Sketch" then
        set checkBoxSketch to 1
    else
        set checkBoxSketch to 2
    end if
    delay 1
    -- Below, insert either  checkBoxSketch for "Sketch" or checkBoxDraw for "Draw" 
    click checkbox checkBoxDraw of toolbar 1 of window 1 of application process "Preview"
end tell
-- without these next following lines, the toolbar  "Draw" or "Sketch" do not appear to be selected
tell application "Preview" to tell window 1
    set visible to false
    set visible to true
end tell
delay 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...