2

カスタム NSCell 内に NSPopUpButtonCell があり、使用しています

- (BOOL)startTrackingAt:(NSPoint)startPoint inView:(NSView *)controlView

クリックしたときにポップアップメニューを生成します。

また、カスタム セルで copyWithZone: をオーバーライドして popUpCell インスタンス変数をコピーし、テーブル ビューの各行に独自のポップアップ セルが含まれるようにしました。

私の問題は、メニューが正常にポップアップし、メニューから項目を選択できるにもかかわらず、項目が選択されたときにセルが選択された項目をメニューから選択された項目と一致するように変更しないことです。

ただし、セルをコピーするゾーンでコピーの行をコメントアウトすると、選択が行われる限り適切に動作します(選択されたアイテムに一致するように変更されますが、すべての行には同じ選択されたアイテムがあります)。

これがなぜなのか、またはもっと正確に言えば、どうすれば修正できるのか、誰かが知っていますか?

4

2 に答える 2

0

セルをコピーせず、代わりに次を使用することをお勧めします。

- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex

...デリゲート メソッドを使用して、各行が描画される前にセルに正しいデータを設定します。

于 2009-06-12T22:38:19.767 に答える