由于多种原因,我已将实现NSOutlineViewDelegate协议的类添加到响应者链中:
[myOutlineView setNextResponder:self];
这会阻止我的大纲视图滚动。接听电话 - 滚动工作正常,把它放回去 - 滚动停止。如果我使用向上和向下箭头在视图中移动选择,它会滚动显示所选行,但手势滚动不会做任何事情。
代理包含很多支持拖放的方法,以及用于支持上下文菜单的ibaction方法,但是我不能想到会干扰滚动的内容(我正在使用带有手势的macbook air)滚动)。有人知道造成干扰的是什么吗?或任何想法如何诊断?
我应该补充一点,我使委托类成为NSResponder的子类。
答案 0 :(得分:1)
所以答案是,当将一个委托添加到响应者链中时,您还必须向代理添加以前在其位置的响应者 - 否则链断开并且事件不会被处理,所以它云:
NSResponder *nextResponder = myOutlineView.nextResponder;
[myOutlineView setNextResponder:self];
[self setNextResponder:nextResponder];
恢复响应者链后,我的大纲视图现在再次滚动。万岁