同步两个NSScrollViews

时间:2015-10-07 14:57:28

标签: objective-c cocoa nsscrollview

我正在开发一个小型OS X应用程序,它由两个NSTextView对象组成,每个对象都由NSScrollView包装。

我按照Apple Mac开发人员库(https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/NSScrollViewGuide/Articles/SynchroScroll.html

中提到的步骤进行操作

似乎工作......好吧,至少当用户通过执行通常的滚动手势手动滚动时。但是当用户在NSTextView中输入大量文本导致ScrollView向下滚动时,同步滚动似乎不起作用。

同步(因此正在聆听)滚动视图向下滚动片刻,然后跳回文本视图的顶部。

有没有人知道为什么会发生这种情况?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

当以编程方式更改TextView的字符串值(位于同步的ScrollView中)时,似乎会出现此问题。

一旦我更改了字符串值,我就添加了[self synchronizedViewContentBoundsDidChange:nil];之类的调用,这样就可以了。

当我现在向原始文本视图中添加新行时,这会导致滚动视图向下滚动,同步滚动视图会正确滚动。