Input Method Kit
ざーっと読んでみました。勘違いもあるかもしれませんが、以下のような感じです。
- IMKServer(≒ TSM コンポーネント) が入力セッションを束ねる
- 各セッションは IMKInputSession(client) と IMKInputController(server) のペア
- IMKInputSession は TSM ドキュメントを表現している(実装する必要なし)
- IMKInputController は Input Method を表現している(delegate を実装すべし)
- IMKCandidates で候補と候補ウィンドウを管理することが可能(アノテーションにも対応)
- メニューやプリファレンスなどもごく普通に考慮されている
- かな漢字変換エンジンは独自に用意する必要あり(IMK には含まれない)
というわけで、TSM コンポーネント側の実装を簡略化するフレームワークですね。変換エンジンとの通信部分もフレームワークとして提供してくれるのかと思っていたのですが、そこまで手取り足取りではありませんでした。ただ、Carbon と Cocoa のブリッジを書かずに済むとか、全部 Cocoa で書けるというのはやはり大きな魅力です。
せっかくなので新エンジンを IMK で、というのも手かなぁという気もしますが、さて、どうしたものか。