将委托添加到响应器链将停止滚动工作



由于一些原因,我将实现NSOutlineViewDelegate协议的类添加到响应器链中:

[myOutlineView setNextResponder:self];

这将阻止大纲视图滚动。把呼叫拿出来-滚动工作正常,把它放回去-滚动停止。如果我使用上下箭头在视图中移动选择,它会滚动显示选中的行,但是手势滚动不起任何作用。

这个委托包含了很多支持拖放的方法,和支持上下文菜单的ibaction方法,但是我想不出里面有什么会干扰滚动(我用的是带有手势滚动的macbook air)。有人知道是什么引起了干扰吗?或者知道怎么诊断吗?

我应该补充一下,我让委托类成为NSResponder的子类

所以答案是,当将一个委托添加到响应器链时,你还必须将过去在它所在位置的响应器添加到委托中-否则链将被破坏,事件无法得到处理,所以它是:

    NSResponder *nextResponder = myOutlineView.nextResponder;
    [myOutlineView setNextResponder:self];
    [self setNextResponder:nextResponder];

随着响应链的恢复,我的大纲视图现在再次滚动。万岁

最新更新