我的 Qt 应用程序支持在 Linux 和 Windows 上更改输入语言。我还想添加对更改 Mac OSX 中的输入语言的支持。
不幸的是我没有任何关于 Mac SDK 的信息。 (我在 OS X 上的第一个也是最后一个工作是编译 Qt 并编译我的应用程序!)
我搜索这个问题并发现我需要使用文本输入源服务 http://developer.apple.com/mac/library/documentation/TextFonts/Reference/TextInputSourcesReference/Reference/reference.html我还发现了这些代码:
TISInputSourceRef isref;
isref = TISCopyCurrentKeyboardInputSource();
CFDataRef uchr = (CFDataRef)TISGetInputSourceProperty(isref, kTISPropertyUnicodeKeyLayoutData);
UCKeyboardLayout * keyLayoutPtr=(UCKeyboardLayout*)CFDataGetBytePtr(uchr);
Is keyLayoutPtr
当前键盘布局的指针?
如果上述问题的答案是“是”,那么我应该与什么进行比较keyLayoutPtr
?
换句话说,如何检查当前键盘布局是否(例如)“英语”? (或者类似的东西LANG_ENGLISH
在 Win API 中或us
在 XLib 中。)
我想你会通过isref
to TISGetInputSourceProperty
,使用键kTISPropertyInputSourceLanguages
,并检查数组中的第一个语言代码是否为“en”或类似的内容。我不知道它是否只会返回“en”或“en-US”等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)