objective-c - 同步两个 NSScrollView

标签 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 向下滚动时,同步滚动似乎不起作用。

同步(因此也是监听) ScrollView 向下滚动一小会儿,然后跳回到 TextView 的顶部。

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

最佳答案

我找到了解决方案。

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

一旦我更改了字符串值,我就添加了一个类似 [self synchronizedViewContentBoundsDidChange:nil]; 的调用,并且这有效。

当我现在向原始 TextView 添加新行时,这会导致 ScrollView 向下滚动,同步 ScrollView 会正确滚动。

关于objective-c - 同步两个 NSScrollView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32995650/

相关文章:

ios - 使 UITableViewCell 表现得像一个真正的按钮

cocoa - 在 cocoa 中使用 nsfilesustem 获取文件属性不存在这样的文件

swift - 如何在 NSScrollView 中使滚动条背景透明?

xcode - NSTextView/NSScrollView - 有几个问题可以帮助我理解它的正确用法

ios - 为什么在打印核心位置返回到控制台的位置时出现无限循环?

objective-c - NSString 内存管理问题 : message sent to deallocated instance

javascript - 将 html/css/javascript 与 phonegap 一起使用而不是 Objective-C (iPhone) 的缺点

iphone - 以编程方式创建 UITextField iphone 时出现问题

macos - CGDisplay创建图像矩形: how to ignore a specific NSWindow

objective-c - 在 NSScrollView 中设置垂直滚动条样式