2010-11-02 68 views
3

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

我在可可的土地是一个新手,我无法找到如何可以完成此

回答

3

你想要得到的NSOutlineView的封闭滚动视图的夹视图:

NSClipView * clipView = [[outlineView enclosingScrollView] contentView]; 

...并将其-setPostsFrameChangedNotifications设置为YES。从该视图中监听NSViewFrameDidChangeNotification并作出相应的响应。

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

+0

它不起作用,当我展开或折叠视图节点时,通知被调用,但当我在视图内滚动时,通知不叫 – dafi 2010-11-02 14:34:42

+0

Bah。有错,抱歉。更新。 – 2010-11-02 14:49:14

+0

这个问题与clipView无关,但使用NSViewFrameDidChangeNotification,当您尝试在视图内滚动*时,通知被调用* only *当您调整视图大小*或*展开项目,但*未被调用*。谢谢 – dafi 2010-11-02 15:05:41