代码之家  ›  专栏  ›  技术社区  ›  EightyEight

滚动时未正确刷新nstextview

  •  6
  • EightyEight  · 技术社区  · 17 年前

    问候语,

    我有一个包含大量文本的nstextview。但是,每当我滚动时,视图都没有正确更新。有一些工件保留在视图的顶部或底部。似乎视图刷新频率不够。但是,如果我滚动得很慢,视图就会正确更新。如果我在视图中添加一个边框,一切都会正常工作,那么无边框视图就是有问题的视图。下面是一个屏幕截图的链接:

    http://img216.imageshack.us/img216/8193/picture13s.png

    谢谢

    4 回复  |  直到 11 年前
        1
  •  6
  •   James Eichele Bernard Igiri    17 年前

    你设置了吗 setDrawsBackground copiesOnScroll 适用于 NSScrollView NSClipView ?

    我建议的第一件事是关闭 NSSCRelVIEW :

    [myScrollView setDrawsBackground:NO];
    

    请注意,这应该设置在 NSSCRelVIEW 关于嵌入式 NSCLIPVIEW .

    以下摘录自 documentation 可能相关:

    如果你 NSSCRelVIEW 包围一个 NSCLIPVIEW 发送一个 setDrawsBackground: 参数为的消息 NO NSSCRelVIEW 具有发送 NSCLIPVIEW setCopiesOnScroll: 参数为的消息 . 发送的副作用 设置图纸背景: 直接发送给 NSCLIPVIEW 相反,在文档视图中滚动时会出现__trails_(以前图形的痕迹)。

        2
  •  2
  •   user100051    17 年前

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

        3
  •  1
  •   jtf    11 年前

    我也遇到了类似的问题——当nstextview嵌入到另一个滚动视图(即,一个nstableview)中时,工件会被开发。

    我真的转身了 setdrawsbackground,然后添加一个漂亮的颜色,使其再次消失。

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

    这与一个滚动轮事件结合使用,让我在一个可安装的视图中使用nstextview。

    -(void)scrollWheel:(NSEvent *)theEvent{
        NSScrollView *scroll = [self enclosingScrollView];
       [[scroll superview] scrollWheel:theEvent];
    }
    
        4
  •  0
  •   cocoafan    17 年前

    我以前也遇到过同样的麻烦。我不记得我是怎么解决的。

    如果超级视图是自定义视图,请尝试将nstextview放置到其他视图。看看会发生什么。

    推荐文章