滚动时在NSScrollView中自定义视图

时间:2014-02-19 15:08:18

标签: macos cocoa nsscrollview

我在NSScrollView中有一个名为SequenceView的自定义视图。

它应该在一列中绘制20个红色矩形。

问题:垂直滚动时矩形被损坏/未被部分绘制。

滚动之前和之后: enter image description here

- (void)drawRect:(NSRect)rect {

    [[NSColor yellowColor] set];
    NSRectFill(_bounds);

    [[NSColor redColor] set];
    NSLog(@"Rect: %@",  NSStringFromRect(rect));

    float x = rect.origin.x+10;
    float y = rect.origin.y+10;
    for (unsigned i=0; i<20; i++) {
        NSRect r = NSMakeRect(x,y,30, 30);
        if (NSIntersectsRect(r, rect)){
            NSLog(@"Drawing: %@",  NSStringFromRect(r));
            [[NSBezierPath bezierPathWithRect: r] stroke];
        }
        y+=40;
    }
}

1 个答案:

答案 0 :(得分:1)

查看滚动视图的“滚动时复制”是否已激活:

enter image description here