2016-01-12T13:57:52+09:00

Type Selection と StationeryPalette

タイプセレクション機能とは Finder などの項目の一覧を表示しているウインドウで、テキストを入力することによってインクリメンタルサーチによって一致した項目を選択する機能です。

例えば、「a」と入力したら「a」ではじまる物が選択されるという具合です。Finder では日本語を入力すると入力ウィンドウが表示され、日本語ではじまるファイルもタイプセレクションで選択できます。

その昔、Cocoa の NSTableView とか NSOutlineView にはタイプセレクション機能は有りませんでした。いくつものライブラリが制作されましたが、Finder のように日本語にも対応しているものはありませんでした。

そこで、僕は Mac OS X 10.4 が全盛の 2007 年の始め、StationeryPalette の為に、日本語対応タイプセレクション機能を開発しました。

こんな風に、日本語のタイプセレクションが行える Cocoa アプリケーションは今も昔も StaioneryPalette だけだと思います。Mac OS X 10.5 になると、NSTableView, NSOutlinveView にタイプセレクション機能が追加されました。しかし、日本語入力に対応しておらず、アルファベットではじまる項目しか選択できませんでした。

しかし、この虎の子の日本語対応キータイプセレクション機能は64bit 環境では動かなくなってしまいました。一部、Carbon Event を使用している箇所があり、Carbon API は 64 bit 環境ではサポートされていないことが原因と思われますが、詳しいことは分かりません。

現在、StationeryPalette のコードの更新作業を行っています。あまり追加すべき機能はないと思っています。SDK を OS X 10.8 にし deprecated API を新しいAPIに置き換え、ARC に移行する等、コードをモダンなものに更新して、末永くメンテナンスできるようにしたいと考えています。

ついでに、64 bit 環境下でのタイプセレクションの問題をどうにかしたかったが、どうにもできる気がしません。心血を注いだコードを捨て去るのは誠に苦しいが、Cocoa 内蔵のタイプセレクション機能で妥協しよう。無念。