きりかノート 3冊め

おあそびプログラミング

円とバックスラッシュのキー入力を入れかえる(Cocoaアプリ限定)

splhackの「不思議なこと1つ解決」を読んでいて思い出したのでメモ。

Mac の JIS キーボードでバックスラッシュを入力するには Option + ¥ キーなんだけど、プログラム書くような人には逆のほうがたぶん便利。Cocoa アプリケーション限定だけれど、~/Library/KeyBindings/DefaultKeyBinding.dict で設定ができる。

 {
"¥" = ("insertText:", "\\");
"〜¥" = ("insertText:", "¥");
}

(円記号、バックスラッシュ、チルダはほんとうは半角)

10.4と10.5で動作確認した。 JTerminal から Leopard 付属の Terminal.app に乗り換えするときに調べたもの。

DefaultKeyBinding についてはマイコミジャーナルOS X ハッキング! (103) Cocoaアプリのキーバインドにこだわる(1) を、実行可能なメソッドと機能については NSResponder のリファレンス を見るとどういうことをしているのかの参考になると思う。

しかし DefaultKeyBinding で TextView(TextInput のメッセージ送信先) のメソッドが呼び出せるってのは便利なのだけど、どうしてこんな機能があるのだろう。ずいぶん昔からあるよな。