【问题标题】:How to change the Mac OS X Keyboard Layout programmatically?如何以编程方式更改 Mac OS X 键盘布局?
【发布时间】:2010-07-26 20:37:29
【问题描述】:

我的 Qt 应用程序支持在 Linux 和 Windows 上更改输入语言。我也想添加对在 Mac OSX 中更改输入语言的支持。

很遗憾,我没有关于 Mac SDK 的任何信息。 (我在 OS X 上的第一个也是最后一个工作是编译 Qt 并编译我的应用程序!)

我在谷歌上搜索了这个问题,发现我需要使用Text Input Source Services,而且我还找到了这些代码:

TISInputSourceRef isref;
isref = TISCopyCurrentKeyboardInputSource();
CFDataRef uchr = (CFDataRef)TISGetInputSourceProperty(isref, kTISPropertyUnicodeKeyLayoutData);

UCKeyboardLayout * keyLayoutPtr=(UCKeyboardLayout*)CFDataGetBytePtr(uchr);

keyLayoutPtr 是当前键盘布局的指针吗?

如果上述问题的答案是“是”,那么我应该与keyLayoutPtr比较什么?

换句话说,我如何检查当前的键盘布局是否(例如)“英文”? (或者类似于 Win API 中的 LANG_ENGLISH 或 XLib 中的 us。)

【问题讨论】:

标签: macos qt keyboard-layout


【解决方案1】:

我认为您应该使用键 kTISPropertyInputSourceLanguagesisref 传递给 TISGetInputSourceProperty,并检查数组中的第一个语言代码是否为“en”或类似的东西。我不知道它是否只会返回“en”或“en-US”等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-22
    • 2010-09-30
    • 2012-04-30
    • 1970-01-01
    相关资源
    最近更新 更多