我希望這不是太明顯,但我想通過AppleScript在應用程序中按下其中一個工具欄按鈕。如何以編程方式使用AppleScript按下工具欄按鈕?
背景:該按鈕沒有任何菜單項或鍵盤快捷鍵。因此,我無法通過任何這些方法激活它;我需要找到一種實際上「按下」按鈕的AppleScript方法。
我希望這不是太明顯,但我想通過AppleScript在應用程序中按下其中一個工具欄按鈕。如何以編程方式使用AppleScript按下工具欄按鈕?
背景:該按鈕沒有任何菜單項或鍵盤快捷鍵。因此,我無法通過任何這些方法激活它;我需要找到一種實際上「按下」按鈕的AppleScript方法。
我打算對@hced說什麼擴大一點。
我同意click button 3 of tool bar 1 of window 1
在許多情況下工作。但是從操作系統到操作系統,可以成爲移動目標。我的例子是iTunes。在iTunes 10.5.8中,播放按鈕是17
,其中10.7.5是25
。但是,在這兩種情況下,它都被稱爲「AirPlay」!
所以我建議使用開發工具包,並獲得蘋果這樣的代碼: http://developer.apple.com/library/mac/#samplecode/UIElementInspector/Introduction/Intro.html
運行應用程序,無論你鼠標會得到你需要使這項工作在你的AppleScript的所有信息:
click (every button whose description is "AirPlay") of window "iTunes" of application process "iTunes"
在這種情況下,應該只有一個按鈕與此說明,但您可以使用該工具來發現是否是這種情況。如果是這樣,請限制範圍!
希望這有助於! Bo
好的,那是比我想象的簡單,一旦我發現如何。 (谷歌搜索沒有留下太多的幫助,但一個名爲Prefab UI Browser的應用程序發現了這個過程。
例子:
tell application "System Events"
tell process "OmniFocus"
click button 3 of tool bar 1 of window 1
end tell
end tell
我有一個後續的問題,但:
你怎麼按名稱/說明參考工具欄按鈕?我知道這個按鈕有一個description屬性,其值爲:「Contexts」。但是,如何在click語句中引用它?
啊,我自己也想出了一個。似乎我在這裏進行自我評論狂歡。
這個例子爲我工作,通過其描述屬性的方式引用特定的工具欄按鈕:
tell application "System Events"
tell process "OmniFocus"
click (every button whose description is "Contexts") of tool bar 1 of window 1
end tell
end tell
我有自己的見解離開它的任何評論者有關引用每按鈕,其描寫的特徵是「上下文」(按照我的例子),以表達下面的內容。但我認爲不能有多個按鈕具有相同的描述,對吧?