如何强制重绘NSScrollView中的内容

时间:2011-08-04 08:12:01

标签: objective-c cocoa nsscrollview redraw

我将NSTextView + NSImageView + NSMatrix + NSTextView放在NSScrollView中。然后使用以下代码将此scrollview滚动到顶部 -

NSPoint pointToScrollTo = NSMakePoint(0, NSMaxY([[singleScrollView documentView] frame]) - [[singleScrollView contentView] bounds].size.height);
[[singleScrollView contentView] scrollToPoint: pointToScrollTo];
[singleScrollView reflectScrolledClipView: [singleScrollView contentView]];

但问题是当它完成滚动到顶部时,视图变得混乱..这是截图 -

enter image description here

我尝试使用此功能强制重绘内容而没有运气 -

[txtQTitle setNeedsDisplay:YES];
[viewOptions setNeedsDisplay:YES];
[singleScrollView setNeedsDisplay:YES];

有谁知道为什么会造成这种情况以及应该如何解决?

编辑1 - 当我使用鼠标滚动滚动视图时,singleScrollView的某些部分变得正常..这是此截图 - enter image description here

1 个答案:

答案 0 :(得分:5)

尝试使用[[yourScrollView contentView] setCopiesOnScroll:NO]。我想,它应该可以解决你的问题。