0

NSTableView にカスタム NSCell がありますが、正しく表示されません。テーブル ビューには適切な数のアイテムが含まれていますが、最初のアイテムを除いて空です。最初のものはセルを示していますが、NSTableView のどこかをクリックすると値がランダムに変化します。これは私の細胞と関係があると思われますcopyWithZone:。私のセルには iVar がなく、objectValuedrawWithFrame:inView:を描画するメソッドだけがあります。私はcopyWithZone:戻る[[[MyCell allocWithZone: zone] init] autorelease]

他のものを返す必要がありますか?

4

1 に答える 1

0

-autoreleaseの結果であってはなりません-copyWithZone:。「コピー」は Cocoa の 3 つの魔法の言葉 (new、alloc、copy) の 1 つで、返されたオブジェクトに有効な +1 保持が必要であることを示します。

また、ある時点でセルの指定された初期化子を常に呼び出す必要があることに注意してください (initImageCell:またはinitTextCell:)。initこれらのいずれも呼び出さない場合は、セルを正しく初期化していない可能性があります。NSCell のサブクラス化を参照してください。

于 2011-03-04T14:23:30.590 に答える