2

私の 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ですか?

つまり、現在のキーボード レイアウトが (たとえば) 「英語」であるかどうかを確認するにはどうすればよいですか? (またはLANG_ENGLISH、Win API やusXLib のようなもの。)

4

1 に答える 1

1

キーを使用してにisref渡し、配列の最初の言語コードが「en」かそのようなものかどうかを確認すると思います。「en」または「en-US」などだけが返されるかどうかはわかりません。TISGetInputSourcePropertykTISPropertyInputSourceLanguages

于 2010-07-26T21:12:00.750 に答える