我正在开发一个小型 OS X 应用程序,它由两个 NSTextView 对象组成,每个对象都由一个 NSScrollView 包裹。
我按照 Apple Mac 开发人员库 ( https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/NSScrollViewGuide/Articles/SynchroScroll.html ) 中提到的步骤进行操作
它似乎有效......好吧,至少当用户通过执行通常的滚动手势手动滚动时。但是当用户在 NSTextView 中输入大量文本导致 ScrollView 向下滚动时,同步滚动似乎不起作用。
同步(因此也是监听) ScrollView 向下滚动一小会儿,然后跳回到 TextView 的顶部。
有人知道为什么会发生这种情况吗?
最佳答案
我找到了解决方案。
当以编程方式更改 TextView(位于同步 ScrollView 内)的字符串值时,似乎会出现此问题。
一旦我更改了字符串值,我就添加了一个类似 [self synchronizedViewContentBoundsDidChange:nil];
的调用,并且这有效。
当我现在向原始 TextView 添加新行时,这会导致 ScrollView 向下滚动,同步 ScrollView 会正确滚动。
关于objective-c - 同步两个 NSScrollView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32995650/