はじめに

Catalina (10.15)で attribute "AXDescription"'s で入力メニューを切り替えられなくなったので、その対応

入力メニューはどうやら別になったようだ

以前書いた、「AppleScriptでシステムの上部メニューを選択する」でシステムの上部メニューから入力メニューを切り替えようとしたらできなくなっていた。原因を探ると、Catalinaでは入力メニューは、TextInputMenuAgent で個別に持つようになったため、そちらを指定しないといけなくなったようだ。

なので、以下のように書くと切り替えられる。


tell application "System Events"
	tell process "TextInputMenuAgent"
		tell menu bar 2
			click menu bar item 1
			click menu item "カタカナ" of menu 1 of menu bar item 1
		end tell
	end tell
end tell

Catalina以前のマシンでもスクリプトを走らせたい場合は、これではできないのでスクリプトでOSの情報を取得して条件分岐させるのがいいのかな。OSの情報はターミナルを走らせて取得できる。


set OSVer to do shell script "sw_vers -productVersion| cut -d '.' -f 1-2"

これで以前のOSの場合は、以前のスクリプトで、Catalina以降は"TextInputMenuAgent"で行う