Mac OS Xで日本語などの入力を司るAPI
Cocoa
Carbon
概要
まず、NewTSMDocumentでTSM documentなるものを作る。このときにUnicodeを使うという事を指示するのだが、微妙に面倒。次に、ウィンドウがアクティブになった時(要するにフォーカスが当たる、か?)にActivateTSMDocumentを呼ぶ。非アクティブになったらDeactivateTSMDocumentを呼び、終わったらDeleteTSMDocumentを呼ぶ。
そしたらいくつかのイベントが飛んでくるので、ちゃんと処理する。
- kEventTextInputUpdateActiveInputArea
- これが一番大事。未確定の文字は次々と変化するので、それに追従する。ちなみに未確定の文字はアプリケーション側で表示する。
- kEventTextInputOffsetToPos
- 変換候補のウィンドウをどこに出せばいいかを教えてやる。
- kEventTextInputGetSelectedText
- 再変換の際に飛んでくるので、現在どのテキストが選択されているか教えてやる。
- 他にもあると思うので、分かった時に書きます。
- 管理人が勉強不足で見当はずれな事を書いている可能性あり。
具体的なイベントとか
ひょっとしてCocoaだと、IMが有効な状態でキー入力しても(Carbonだと下の方に窓が出てくるのに対して)普通のキー入力しかにならない?
最終更新:2010年12月01日 21:21