У меня есть дополнительный вопрос к этой теме: переключиться на конкретный источник ввода
Асмус опубликовал этот ответ:
Я придумал немного более приятное решение в AppleScript, учитывая, что вы знаете название раскладки клавиатуры, на которую хотите переключиться. Создайте такую функцию:
on changeKeyboardLayout(layoutName) tell application "System Events" to tell process "SystemUIServer" tell (1st menu bar item of menu bar 1 whose description is "text input") to {click, click (menu 1's menu item layoutName)} end tell end changeKeyboardLayout
а затем позвоните по
changeKeyboardLayout("English") changeKeyboardLayout("German")
Имейте в виду, что имена раскладок клавиатуры локализованы, то есть в немецкой системе приведенный выше пример должен будет вызывать "Englisch" и "Deutsch".
Итак, я попытался создать такой скрипт для перехода на вьетнамский язык в испанской системе:
on changeKeyboardLayout("Vietnamita")
tell application "System Events" to tell process "SystemUIServer"
tell (1st menu bar item of menu bar 1 whose description is "text input") to {click, click (menu 1's menu item "Vietnamita")}
end tell
end changeKeyboardLayout
Это не работает. Это также не сработает, если я уберу кавычки в одном или обоих экземплярах слова "Vietnamita". Вы видите, что я делаю не так? Благодарю.