![在 OS X 中切换到特定输入源](https://linux22.com/image/1361282/%E5%9C%A8%20OS%20X%20%E4%B8%AD%E5%88%87%E6%8D%A2%E5%88%B0%E7%89%B9%E5%AE%9A%E8%BE%93%E5%85%A5%E6%BA%90.png)
我对此主题有一个后续问题:切换到特定输入源
我在 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
你应该这样称呼它:
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。请参阅这个问题。