Sample Codesに、Mac OS Xでのインプットメソッドのサンプルプログラムが掲載された。インプットメソッドと言えば仮名漢字変換だが、このBasicInputMethodというサンプルは、インプットメソッド自体の作り方を示したもので、変換機能については組み込まれていない。しかしながら、インプットメソッドの処理がどのように行われているのかを知るには絶好の材料になるだろう。サンプルはProject Builderを使っており、C言語で記述されている。まず、インプットメソッドは、Text Servicesのコンポーネントとして作られ、システムにインストールされる必要がある。具体的には/Library/Componentsにコピーされる。規定に従って処理を組み立てるが、ビルドにおいてはシェルスクリプトを実行させるといった手法が取られている。さらにサーバアプリケーションとの組み合わせが必要になる。コンポーネントとサーバの間はCore Foundationの機能をつかってメッセージのやりとりを行うことになっている。サーバ側では、リクエストに応じて、パレットの表示などを行うようになっている。ソースを子細に見れば、コンポーネントとサーバの役割分担も分かるだろう。コンポーネントとサーバのソースが1つのプロジェクトに入っており、複数のターゲットを使うことでそれぞれのビルドを実現している。 |