NSCollectionViewItem的项目出口的NSView子类不一致地绘制

时间:2011-02-25 04:45:40

标签: objective-c cocoa nsview nscollectionview nscollectionviewitem

我到处寻找这个,但没有运气。 我在我的项目中使用NSCollectionView,通过数组控制器绑定到Core Data。 为了使它看起来像我想要的方式我已经使用新的drawRect方法将NSView子类化,并将其与NSCollectionViewItem的视图出口连接起来。 一切正常并且绑定很好但是它只会出于某种原因在集合视图中的第一个项目上执行自定义绘图。我猜这与NSCollectionView在创建新项目时复制nib的事实有关。 这是我的drawRect:方法首先:

@implementation CompanyItemView

-(void)drawRect:(NSRect)dirtyRect
{   
    NSBezierPath *path = [NSBezierPath bezierPathWithRoundedRect:[self frame]  
                                                         xRadius:6.0f     
                                                         yRadius:6.0f];

    [[NSColor whiteColor] set];
    [path fill];

    [[NSColor darkGrayColor] set];
    [path stroke];
}

@end

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

不完全确定,但我认为你需要实现copyWithZone方法