7

我有一个带有大量文本的 NSTextView。但是,每当我滚动时,视图都不会正确更新。视图的顶部或底部保留了一些工件。看起来视图本身刷新的频率不够高。如果我滚动得很慢,视图会正确更新。如果我在视图中添加边框一切正常,那么无边框视图就是有问题的视图。这是屏幕截图的链接:

谢谢

4

4 回答 4

6

您是否为或设置了setDrawsBackground和属性?copiesOnScrollNSScrollViewNSClipView

我建议的第一件事是关闭以下的“绘制背景”属性NSScrollView

[myScrollView setDrawsBackground:NO];

请注意,这应该在 上设置NSScrollView,而不是在嵌入式上NSClipView

文档中的以下摘录可能是相关的:

如果您将发送带有 的参数的消息NSScrollView附在中,则具有发送带有参数的消息的附加效果。将消息直接发送到的副作用是在文档视图滚动时出现“轨迹”(先前绘图的痕迹)。NSClipViewsetDrawsBackground:NONSScrollViewNSClipViewsetCopiesOnScroll:NOsetDrawsBackground:NSClipView

于 2009-05-28T18:55:00.857 回答
2

看起来文本字段甚至不在滚动区域中......你确定有什么东西没有重叠吗?

于 2009-05-24T04:08:49.407 回答
1

我遇到了类似的麻烦 - 当 NSTextView 嵌入另一个滚动视图(即 NSTableView)时,工件就会出现。

我实际上打开setdrawsbackground,然后添加了一个漂亮的颜色让它再次消失。

-(void)awakeFromNib{
    NSScrollView *scroll = [self enclosingScrollView];
    [scroll setBorderType:NSNoBorder];
    [scroll setDrawsBackground:YES];
    [scroll setBackgroundColor:[NSColor windowBackgroundColor]];
}

这与 scrollWheel 事件相结合,让我可以在 NSTableView 中使用 NSTextView。

-(void)scrollWheel:(NSEvent *)theEvent{
    NSScrollView *scroll = [self enclosingScrollView];
   [[scroll superview] scrollWheel:theEvent];
}
于 2015-01-07T19:58:40.683 回答
0

前段时间我也遇到了同样的麻烦。我不记得我是如何解决的。

如果超级视图是自定义视图,请尝试将 NSTextView 放置到另一个视图。只是看看会发生什么。

于 2009-05-25T23:04:34.237 回答