Mac OS X 10.3以降のみの対応になってしまいますが,NSUserDefaultsControllerを使うと,全くコーディングなしに環境設定ウインドウをInterface Builderだけで作成することができます。 これはあまりに便利で,もう,手動で環境設定ウインドウのコーディングをしたくなくなります。使い方も非常に簡単。
もちろん,Mac OS X 10.3からの機能とそれほど目新しい機能でもないし,説明が無くても使えるくらい簡単な機能なので,Appleのドキュメントを読まずにNSUserDefaultsControllerを使っている人も多いと思います。 ただ,ご本家AppleのページBinding your Preferences in Cocoa,それほど長くないですし,このページでは全くコーディングすることなく非常にうまくCocoa Bindingの利点を伝えています。 英語は苦手という人も多いでしょうが,スクリーンショットも多いし,読んでみるとおもしろいのではないのでしょうか。
私がこのAppleのページを読んで興味を引かれたのは,NSColorをNSUserDefaultsControllerでバインディングしているところです。
NSColorなどのオブジェクトをuser defaultsに記録するには,はいったんNSDataに変換する必要がありますのは,藤棚工房別棟 −徒然−:NSUserDefaultsで環境設定を保存する: 2. NSColorをNSDataにで書きました。
コーディングの際は,NSAnarchiver, NSArchiverクラスを使ってNSColorとNSDataを変換するのですが,Cocoa bindingではInterface Builderで完結している必要があります。 で,その場合どうするのかですが,NSUserDefaultsControllerのValue TransformerにNSUnarchiveFromDataを指定します。 たったそれだけ,です。
Cocoa Binding,Interface Builderをいじって独学で覚えたのと,NSColorをバインディングする必要に迫られたことがないので,この方法を知らなかったです。 いや,らくちんですね。 勉強になりました。