Macos 如何以编程方式更改Mac OS X键盘布局?
我的Qt应用程序支持在Linux和Windows上更改输入语言。我还想添加对在MacOSX中更改输入语言的支持 不幸的是,我没有关于macsdk的任何信息。(我使用OS X的第一个也是最后一个工作是编译Qt和我的应用程序!) 我在谷歌上搜索这个问题,发现我需要使用这些代码:Macos 如何以编程方式更改Mac OS X键盘布局?,macos,qt,keyboard-layout,Macos,Qt,Keyboard Layout,我的Qt应用程序支持在Linux和Windows上更改输入语言。我还想添加对在MacOSX中更改输入语言的支持 不幸的是,我没有关于macsdk的任何信息。(我使用OS X的第一个也是最后一个工作是编译Qt和我的应用程序!) 我在谷歌上搜索这个问题,发现我需要使用这些代码: TISInputSourceRef isref; isref = TISCopyCurrentKeyboardInputSource(); CFDataRef uchr = (CFDataRef)TISGetInputSou
TISInputSourceRef isref;
isref = TISCopyCurrentKeyboardInputSource();
CFDataRef uchr = (CFDataRef)TISGetInputSourceProperty(isref, kTISPropertyUnicodeKeyLayoutData);
UCKeyboardLayout * keyLayoutPtr=(UCKeyboardLayout*)CFDataGetBytePtr(uchr);
keyLayoutPtr
是当前键盘布局的指针吗
如果以上问题的答案是“是”,那么我应该与keyLayoutPtr
进行什么比较
换句话说,如何检查当前键盘布局是否为(例如)“英语”?(或者像Win API中的
LANG_ENGLISH
或者XLib中的us
。我想您应该使用键kTISPropertyInputSourceLanguages
将isref
传递给TISGetInputSourceProperty
,并检查数组中的第一个语言代码是否是“en”或类似的东西。我不知道它是否只返回“en”或“en-US”等。可能会重复