2

AnNSTableViewには複数NSCellの s があります (間接的に を介してNSTableColumn)。NSCell は Flyweight デザイン パターンに従います。彼らはクッキーカッターです。列ごとに 1 つのセルがあり、行ごとに自分自身を描画するように求められます。 「これが値です。最初の行に描画します。これが 2 行目の値です。」 これは、セルごとにビュー インスタンスを持つビュー ベースのテーブルビューとは対照的です。

NSPopUpButtonCell をサブクラス化し、setXxxValue:メソッドごとにメッセージを呼び出しNSLog();てスーパー クラスに転送します。呼び出される唯一のメソッド (たとえば、新しい行を追加するとき、またはテーブルを更新するとき) はsetObjectValue:. これはドキュメントから期待されています...しかしnull、それに渡される唯一のものです!! 選択したアイテムのインデックスを含む NSNumber を渡す必要があります。

私のテーブルはうまく描画されます。 セルの動作を拡張/変更したいので、これを理解しようとしています(明らかに、そうでなければサブクラスは必要ありませんでした)。

質問:これはどのように可能ですか? 各行に正しい値を描画するために、NSPopUpButtonCell に値を設定する方法を教えてください。バインディングを考慮しても、重労働をしているのは NSTableColumn ですよね? 私は何が欠けていますか?

4

1 に答える 1