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

python changing keyboard language in Mac OS X

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

我正在使用 Mac OS X Yosemite.

是的,但这并不好玩。

您正在寻找的方法是 TISSelectInputSource 和相关的 TIS methods. TIS is a Core Foundation library written in C. You will want to use pyobjc

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

TkTech 提供了一些通用的指示,但 pyobjc 似乎并没有实际包装您需要的两个 Carbon 方法(TISCreateInputSourceListTISSelectInputSource)。事实上,pyobjc 在 Python 3.

中完全停止了 Carbon 支持

所以是的,pyobjc 将有助于在 Python 中调用 Objective-C 代码,但您将不得不手动包装您需要的这两个方法,可能使用 [=12] =].执行此操作的代码比应有的要长,而且有点乏味,所以我 link 你 my implementation

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