Input Method Kit

ざーっと読んでみました。勘違いもあるかもしれませんが、以下のような感じです。

  • IMKServer(≒ TSM コンポーネント) が入力セッションを束ねる
  • 各セッションは IMKInputSession(client) と IMKInputController(server) のペア
  • IMKInputSession は TSM ドキュメントを表現している(実装する必要なし)
  • IMKInputController は Input Method を表現している(delegate を実装すべし)
  • IMKCandidates で候補と候補ウィンドウを管理することが可能(アノテーションにも対応)
  • メニューやプリファレンスなどもごく普通に考慮されている
  • かな漢字変換エンジンは独自に用意する必要あり(IMK には含まれない)

というわけで、TSM コンポーネント側の実装を簡略化するフレームワークですね。変換エンジンとの通信部分もフレームワークとして提供してくれるのかと思っていたのですが、そこまで手取り足取りではありませんでした。ただ、Carbon と Cocoa のブリッジを書かずに済むとか、全部 Cocoa で書けるというのはやはり大きな魅力です。

せっかくなので新エンジンを IMK で、というのも手かなぁという気もしますが、さて、どうしたものか。