1

У меня есть дополнительный вопрос к этой теме: переключиться на конкретный источник ввода

Асмус опубликовал этот ответ:

Я придумал немного более приятное решение в 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". Вы видите, что я делаю не так? Благодарю.

1 ответ1

0

Вы должны называть это так:

on changeKeyboardLayout(layoutName)
    --
end changeKeyboardLayout
changeKeyboardLayout("Vietnamita")

Или просто удалите обработчик:

tell application "System Events" to tell process "SystemUIServer"
    tell (menu bar item 1 of menu bar 1 where description is "text input")
        click
        click menu item "Vietnamita" of menu 1
    end tell
end tell

Если появляется сообщение об ошибке "Доступ для вспомогательных устройств отключен", включите доступ для вспомогательных устройств на панели настроек доступности.

Вы также можете использовать changeInput или KeyRemap4MacBook. Смотрите этот вопрос.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .