2

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

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

我用谷歌搜索这个问题,发现我需要使用文本输入源服务,而且我发现了这些代码:

TISInputSourceRef isref;
isref = TISCopyCurrentKeyboardInputSource();
CFDataRef uchr = (CFDataRef)TISGetInputSourceProperty(isref, kTISPropertyUnicodeKeyLayoutData);

UCKeyboardLayout * keyLayoutPtr=(UCKeyboardLayout*)CFDataGetBytePtr(uchr);

keyLayoutPtr当前键盘布局的指针吗?

如果上述问题的答案是“是”,那么我应该与什么比较keyLayoutPtr

换句话说,我如何检查当前的键盘布局是否(例如)“英语”?(或者LANG_ENGLISH在 Win API 或usXLib 中。)

4

1 回答 1

1

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

于 2010-07-26T21:12:00.750 回答