【问题标题】:adding delegate to responder chain stops scrolling from working将委托添加到响应者链停止滚动工作
【发布时间】:2014-08-04 11:01:37
【问题描述】:

出于多种原因,我已将实现 NSOutlineViewDelegate 协议的类添加到响应者链中:

[myOutlineView setNextResponder:self];

这会阻止我的大纲视图滚动。拨打电话 - 滚动工作正常,将其放回 - 滚动停止。如果我使用向上和向下箭头在视图中移动选择,它会滚动以显示选定的行,但手势滚动不会做任何事情。

delegate 包含很多支持拖放的方法,以及支持上下文菜单的 ibaction 方法,但我想不出里面有什么会干扰滚动(我使用的是带有手势滚动的 macbook air) .有人知道是什么导致了干扰吗?或任何想法如何诊断?

我应该补充一点,我将委托类设为 NSResponder 的子类。

【问题讨论】:

    标签: delegates scroll nsoutlineview responder-chain


    【解决方案1】:

    所以答案是,当将委托添加到响应者链中时,您还必须将曾经在其位置的响应者添加到委托中 - 否则链会中断并且事件不会得到处理,所以它去:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多