2005年09月03日

NSUserDefaultsで環境設定を保存する: 3. NSUserDetaultsControllerを使う

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をバインディングする必要に迫られたことがないので,この方法を知らなかったです。 いや,らくちんですね。 勉強になりました。

関連記事


 

この記事へのトラックバックURL

http://blogs.dion.ne.jp/fujidana/tb.cgi/1806786
この記事へのトラックバック
以前、「Quartz Composerを作ろう」(http://tbboy.co
SimpleLyricsPlayer【TBBOY'S ROOM】 at 2006年10月06日 00:40