我有一个带有大量文本的 NSTextView。然而,每当我滚动时,视图都不会正确更新。有一些工件保留在视图的顶部或底部。看来视图本身刷新得不够频繁。如果我滚动得很慢,视图会正确更新。如果我向视图添加边框,一切都会完美运行,无边框视图就是有问题的。这是屏幕截图的链接:

谢谢

有帮助吗?

解决方案

您是否设置了 setDrawsBackgroundcopiesOnScroll 属性为 NSScrollView 或者 NSClipView?

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

[myScrollView setDrawsBackground:NO];

请注意,这应该在 NSScrollView, , 和 不是 在嵌入式上 NSClipView.

以下内容摘自 文档 可能相关:

如果你的 NSScrollView 包含一个 NSClipView 发送一个 setDrawsBackground: 消息的参数为 NONSScrollView 具有发送的附加效果 NSClipView A setCopiesOnScroll: 消息的参数为 NO. 。发送的副作用 setDrawsBackground: 直接留言至 NSClipView 相反,当文档视图滚动时,会出现“轨迹”(先前绘图的痕迹)。

其他提示

看起来像文本字段甚至没有在滚动区域...你确定什么心不是重叠呢?

我有一个类似的麻烦 - 伪像开发当NSTextView被嵌入在另一个滚动视图

(即,NSTableView的)。

我居然变成的的的setdrawsbackground,然后添加一个漂亮的颜色,使其再次消失。

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

这与滚轮事件组合让我用NSTextView在NSTableView的。

-(void)scrollWheel:(NSEvent *)theEvent{
    NSScrollView *scroll = [self enclosingScrollView];
   [[scroll superview] scrollWheel:theEvent];
}

我有同样的问题前一段时间。我不记得我如何解决它。

尝试将NSTextView放置到另一个视图,如果上海华是自定义视图。只是为了看看会发生什么。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top