Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何以编程方式更改Mac OS X键盘布局?_Macos_Qt_Keyboard Layout - Fatal编程技术网

Macos 如何以编程方式更改Mac OS X键盘布局?

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

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

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

我在谷歌上搜索这个问题,发现我需要使用这些代码:

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”等。

可能会重复