由于一些原因,我将实现NSOutlineViewDelegate协议的类添加到响应器链中:
[myOutlineView setNextResponder:self];
这将阻止大纲视图滚动。把呼叫拿出来-滚动工作正常,把它放回去-滚动停止。如果我使用上下箭头在视图中移动选择,它会滚动显示选中的行,但是手势滚动不起任何作用。
这个委托包含了很多支持拖放的方法,和支持上下文菜单的ibaction方法,但是我想不出里面有什么会干扰滚动(我用的是带有手势滚动的macbook air)。有人知道是什么引起了干扰吗?或者知道怎么诊断吗?
我应该补充一下,我让委托类成为NSResponder的子类
所以答案是,当将一个委托添加到响应器链时,你还必须将过去在它所在位置的响应器添加到委托中-否则链将被破坏,事件无法得到处理,所以它是:
NSResponder *nextResponder = myOutlineView.nextResponder;
[myOutlineView setNextResponder:self];
[self setNextResponder:nextResponder];
随着响应链的恢复,我的大纲视图现在再次滚动。万岁