「UIエレメント」コマンドを使用して、スクリプトを作成しようとしているアプリケーションのUIインターフェースのコンポーネントを確認できます。
tell application "System Events"
tell application process "System Preferences"
get the UI elements of the window "Keyboard"
end tell
end tell
リストをドリルダウンして、必要なアイテムがどこにあるかを見つけることができます
tell application "System Events"
tell application process "System Preferences"
get the UI elements of tab group 1 of window "Keyboard"
end tell
end tell
実際にAccessibility Inspectorアプリ(Xcodeの一部)を使用すると、検査する要素を特定するのに役立ちます。
私たちの目的では、関心のあるポップアップは、ウィンドウ「キーボード」のタブグループ1のポップアップボタン2のように見えます。
ポップアップであるため、メニューを操作するには、クリックしてから、アクティブにするアイテムを選択する必要があります。これは、クリックするメニュー項目のラベル全体を指定することで実行できます。選択を切り替えるために必要なキーストロークをシミュレートすることをお勧めします(上向き矢印または下向き矢印、そして戻る)。
tell application "System Preferences"
-- activate
reveal anchor "keyboardTab" of pane id "com.apple.preference.keyboard"
end tell
delay 0.5 -- this depends on how fast is your mac
tell application "System Events"
tell application process "System Preferences"
set thePopup to pop up button 2 of tab group 1 of window "Keyboard"
tell thePopup
click
delay 0.2
if the value of thePopup begins with "App" or the value of thePopup begins with "Expanded" then
key code {125, 125, 125, 36}
else
key code {126, 36}
end if
end tell
end tell
end tell
quit application "System Preferences"
ところで、別の質問で、システム環境設定アプリをアクティブにしないと、スクリプトは機能しますが、ウィンドウは表示されないことに気づきました(ただし、ポップアップメニューは切り替えられます)