OutlineEditをながめる

OutlineEditのMyDocument.nib

何日か前、XCodeを2.1にアップデートした。入れ方が悪かったのかSampleCodeがインストールされていなかったので、いっそのことアップデートしようと思ったのと、Toolbarサポートが Interface Builderや CocoaFrameworkに追加されていないかなという甘い期待。これはなかったようだ。
Examplesの下にたくさんのSampleCodeが入った。適当に気になる名前のprojectを開いては実行してみて、ソースの短さを見ては驚く。出来上がっているプロジェクトを見るのは簡単だけど、これだけサクサク作れるようになるには相当理解が深まらないと難しいのではと思ってしまう。
Tigerになってから増えていたNSTreeControlerが微妙に気になっていたのだけど、CoreDataのサンプルを見ているとOutlineEditというプロジェクトで使われているのを発見。CoreDataがModel、NSTreeControlerがControler、NSOutlineViewがViewになる。FileOwnerであるMyDocumentでボタンからのActionを受け取り、NSTreeControlerに、add,addChildなるメッセージを投げることで、ControlerがCoreDataに対してデータ操作してくれる。indent,deindentはMyDocumentでいくらか処理を行っている。そうか、MyDocument+NSTreeControlerでControlerの役割なんだな。
New,New Child,Indent,DeindentはFile Ownerにconnectionが張られているのに、DeleteだけNSTreeControlerに引っ張られていたのは、なにか違和感。おそるおそる、MyDocumentに(IBAction)deleteNoteを追加してNSTreeControlerにremoveメッセージを投げるようにし、Deleteを FileOwnerにつないでみた。ちゃんと動いた。ふむふむ。
 
しかしー Cocoa Bindingでコードを書かずに済ませられる部分はたしかに増えてるけど、なんだか窮屈な感じ。見通しが悪いというかなんというか。どうなんだろうなー。