2010-07-26 136 views
2

我的Qt应用程序支持在Linux和Windows上更改输入语言。我想在Mac OSX中添加对更改输入语言的支持。如何以编程方式更改Mac OS X键盘布局?

不幸的是,我没有任何有关Mac SDK的信息。 (我与OS X的第一和最后一个工作是在编译Qt和编译我的应用程序!)

我google搜索这个问题,我发现我需要使用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

回答

1

我想你会传递到isrefTISGetInputSourceProperty,使用密钥kTISPropertyInputSourceLanguages,并检查数组中的第一个语言代码是否是“en”或类似的东西那。我不知道它是否会只返回“en”或“en-US”等。

相关问题