NSCell没有正确显示

时间:2011-03-04 14:18:37

标签: objective-c nstableview nscell copywithzone

我在NSTableView中有一个自定义的NSCell,它无法正确显示。表视图中包含正确数量的项目,但除第一个项目外,它们都是空的。第一个显示单元格,但当我点击NSTableView上的某个地方时,它的值会随机变化。我怀疑这与我的手机copyWithZone:有关。我的单元格没有任何iVar,只是一个绘制objectValue的drawWithFrame:inView:方法。在copyWithZone:我返回[[[MyCell allocWithZone: zone] init] autorelease]

我应该退回别的东西吗?

1 个答案:

答案 0 :(得分:0)

您不应-autorelease -copyWithZone:的结果。 “copy”是Cocoa中的三个神奇单词之一(new,alloc和copy),表示返回的对象应该有一个有效的+1保留。

另外,请注意,您应始终在某个时间点(initImageCell:initTextCell:)调用单元格的指定初始值设定项。如果您的init没有调用其中一个,那么您可能没有正确初始化您的单元格。请参阅Subclassing NSCell