Установите флажок, только если он не выбран - PullRequest
4 голосов
/ 13 марта 2012

Когда сценарии пользовательского интерфейса в Applescript, вы можете поставить галочку:

tell application "System Events"
  tell process "Example Process"
    click checkbox "Example Checkbox" of sheet 1 of window 1
  end tell
end tell

У этого есть проблема. Если флажок примера уже отмечен, вы фактически снимаете флажок. Как вы можете «поставить галочку только в том случае, если он еще не отмечен»?

Ответы [ 2 ]

13 голосов
/ 13 марта 2012

Различные элементы пользовательского интерфейса имеют свойства, которые вы можете проверить. Для флажков свойство value будет равно 1 или 0 в зависимости от того, установлен он или нет, поэтому вы можете использовать значение напрямую или принудительно привести к логическому значению, например:

tell application "System Events" to tell process "Example Process"
    set theCheckbox to checkbox "Example Checkbox" of sheet 1 of window 1
    tell theCheckbox
        if not (its value as boolean) then click theCheckbox
    end tell
end tell
1 голос
/ 19 января 2013

Ответ от Red_menace не совсем понятен, вы могли бы подумать, сделав такую ​​вещь, как это:

set theCheckbox to checkbox "Random order" of tab group 1 of window "Desktop & Screen Saver"
            tell theCheckbox
                if false then click theCheckbox -- if false does not reference the 'theCheckbox', it is simply doing nothing
            end tell

Тогда он никогда не вычислит предложение if.

Поэтому я изменил насредняя часть до

set theCheckbox to checkbox "Change picture:" of tab group 1 of window "Desktop & Screen Saver"
        tell theCheckbox
            set checkboxStatus to value of theCheckbox as boolean
            if checkboxStatus is false then click theCheckbox                   
        end tell

А потом все заработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...