python在Mac OS X中更改键盘语言

时间:2015-05-13 18:50:24

标签: python macos keyboard

我编写了需要德语和英语输入的python软件。目前,我正在使用Mac快捷键cmd-space来快速更改键盘布局,但我需要这样做数百次,这会减慢速度。由于我确切知道何时需要英语和德语输入,有没有办法以编程方式更改python中的键盘语言?

我使用的是Mac OS X Yosemite。

3 个答案:

答案 0 :(得分:2)

是的,但这并不好玩。

您要查找的方法是TISSelectInputSource和相关的TIS methods。 TIS是用C编写的Core Foundation库。您将使用pyobjc

实际设置完成后,过程很简单。使用TISCreateInputSourceList获取您要使用的语言的TISInputSourceRef,并将其传递给TISSelectInputSource

答案 1 :(得分:0)

TkTech 提供了一些通用指针,但看起来 pyobjc 实际上并没有包装您需要的两个 Carbon 方法(TISCreateInputSourceListTISSelectInputSource)。事实上,pyobjc 在 Python 3 中完全停止了对 Carbon 的支持。

所以是的,pyobjc 将有助于在 Python 中调用 Objective-C 代码,但是您将不得不手动包装您需要的这两个方法,可能使用 ctypes。执行此操作的代码比应有的长度要长,而且有点乏味,因此我只会将您链接到 my implementation

答案 2 :(得分:0)

使用 subprocess 从 python 调用 xkbswitch 可能比您在此处找到的其他解决方案更容易。