Psychs 先生が、Text Input Source Services なるものが 「Leopard で追加されたらしい」とさえずっていたので、つい出来心で遊んでみることにした。Leopard で遊ぶということは、RubyCocoa で遊ぶということなので、さくっと ruby で書いてみる。
と思いきや、このモジュール、なんと Carbon だと。もう、いいよ、Carbon は。
で、とりあえず TextInputSources.Private.bridgesupport を手作業で(笑)でっちあげて、いくつか関数を実行して遊んでみた。当然ながら期待どおりにさくっと動いた。前にやった IOKit とかと違ってぜんぜんパラメータもないし、呼ぶだけ系なので楽勝。
たとえば、入力を US (というか ASCII だけれど) に変更するスクリプトは、こんな感じで書ける。
require 'osx/cocoa'
OSX.load_bridge_support_file 'TextInputSources.Private.bridgesupport'
OSX::TISSelectInputSource OSX::TISCopyCurrentASCIICapableKeyboardInputSource()
最初の二行はおまじないなので、じっしつ一行だけ。