2011-02-06 7 views
1

私はこの周りに私の頭を得ることはできません:私はNSMutableArrayのカスタムLessonオブジェクトでいっぱいのインスタンスがあります。これらのオブジェクトは、2つのpropertiesnameselectedを持っています。これらのLessonオブジェクトをNSTableViewに使用しようとしています。 1つの列にはnameが文字列として表示され、もう1つの列にはチェックボックスのselectedが表示されます。この方法は、あまりにも頻繁に呼び出されるので、おそらく - しかし私は、予想通りselectedの値は動作しません戻って、うまく働いた名前を、返すためにCocoa Bindings + NSArray +カスタムクラス

- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex 

方法を使用していました。

これはデータソースメソッドを使用して簡単に解決できますか、Interface Builderを使用してバインディングを設定する必要がありますか?後者はうまくいくとは言えますが、私は自分のセットアップ(NSArray)をカスタムオブジェクトと共にIBにどのように持ち込むことができるのか分かりません。

は、私はいくつかのアイデアをいただければ幸いです、ファビアン

答えて

1

bindinsはあなたのケースではかなり良い仕事であろうと思われます。 レッスンのオブジェクトの配列にNSArrayControllerバインディングを使用し、それを "lessonsArray"と呼ぶことができます。 NSArrayコントローラを選択し、 "Model Key Path"を "lessonsArray"に設定します。 "lessonsArray"にsetterとgetterを作成する必要があります。それ以外の場合は動作しません。

NSArrayControllerにバインディングを設定したら、NSTableViewをバインドする必要があります。現実には、あなたが今バインドする必要があるのはNSTableColumnsです。あなたは名前と選択の2つを持っているとします。この構成でNSArrayControllerはそれらをバインドします コントローラーキー:arrangedObjects モデルキーのパス:またはを選択名前。

私はあなたを理解して助けてくれることを願っています。幸運

関連する問題