我的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
。)
答案 0 :(得分:1)
我认为您使用密钥isref
将TISGetInputSourceProperty
传递给kTISPropertyInputSourceLanguages
,并检查数组中的第一个语言代码是否为“en”或类似内容。我不知道它是否只会返回“en”或“en-US”等。