Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 如何检测NSOutlineView的滚动?_Cocoa_Nsoutlineview - Fatal编程技术网

Cocoa 如何检测NSOutlineView的滚动?

Cocoa 如何检测NSOutlineView的滚动?,cocoa,nsoutlineview,Cocoa,Nsoutlineview,我有两个NSOutlineView并排显示,它们包含相同数量的行(这是一个先决条件),当用户使用鼠标、键盘或滚动条滚动时,我需要同步它们,以便看到相同的视图部分(或行) 我是可可王国的新手,我无法找到如何实现这一点您需要获取NSOutlineView封闭滚动视图的剪辑视图: NSClipView * clipView = [[outlineView enclosingScrollView] contentView]; …并将其-setPostsFrameChangedNotifications

我有两个NSOutlineView并排显示,它们包含相同数量的行(这是一个先决条件),当用户使用鼠标、键盘或滚动条滚动时,我需要同步它们,以便看到相同的视图部分(或行)


我是可可王国的新手,我无法找到如何实现这一点

您需要获取NSOutlineView封闭滚动视图的剪辑视图:

NSClipView * clipView = [[outlineView enclosingScrollView] contentView];
…并将其-setPostsFrameChangedNotifications:设置为YES。从该视图中侦听NSViewFrameDidChange通知,并作出相应响应


注意:术语不太清楚。大多数人对-contentView的第一个期望是:它返回正在滚动的视图。-contentView:方法返回滚动视图的NSClipView,而-documentView:方法返回正在滚动的实际视图

它不起作用,当我展开或折叠视图节点时,会调用通知,但当我在视图中滚动时,不会调用通知问题与clipView无关,但使用NSViewFrameDidChangeNotification时,仅当您调整视图大小或展开项目时才会调用通知,而当您尝试在视图内滚动时不会调用通知。谢谢,我可以发誓这就是我几年前找到的解决办法。NSViewBoundsIDChangeNotification/-setPostsBoundsChangedNotifications如何:?我找到了这篇文章,但我不明白为什么从未调用该方法。老实说,我没有子类化,只是在init方法中设置了NSViewBoundsIDChangeNotification