2011-11-16 4 views
0

私はテーブルデータを取得するためにバインディングを使用しているテーブルを持っています。また、特定のセルが表示されているときにwillDisplayCellを使用してカスタマイズします。私の質問は、willDisplayCellメソッドで参照されているセルの値を取得するにはどうすればいいですか?バインディングを使用していて、データソースではないので、コントローラオブジェクトを照会する必要はありません。 NSTableColumnまたはNSTableViewに、値を取得するために呼び出す必要があるものがありますか?NSTableViewがバインディングを使用しているときにwillDisplayCellでオブジェクト情報を取得する

答えて

2

データソースとバインディングアプローチを混在させることは何も問題ありません。事実、文書には、複雑な状況でのより優れた制御のために2つを混在させることが記述されています。それは常に行われているので、間違ったことをしているとは思わないでください。

また、オーダーのポイントは:-tableView:willDisplayCell:forTableColumn:row:方法はNSTableViewDelegate PROTCOL、ないNSTableViewDataSourceプロトコルの一部であるので、それはあなたが考えるよりも、少ない「汚い」です。このような状況で:-)

正しい方法は、お使いのアレイコントローラにアウトレットを作成する(ので、あなたがメッセージを缶)とインデックスが要求された行と一致して-arrangedObjectsでのオブジェクトのためにそれを依頼することです。それ以外の方法で、あなたはフレームワークと戦っています。