UIResponder和事件传递的另一个问题

| 我正在尝试实现UIResponder对象,该对象将允许我记录屏幕活动,然后将事件传递给下一个响应者,以允许应用程序正常进行。我已经研究了一段时间,看到了两种可行的方法:要么创建一个根视图,要么忽略位于其顶部的子视图中的接触,从而允许根视图处理它们。或创建一个GestureRecognizer,将其添加到所有子视图中。我的应用程序具有多个在主窗口中交换和交换的视图。 我已经尝试了这两种方法,但最终陷入了同样的僵局:我在视图(或Recognizer)中得到了touchesBegan / touchesMoved / touchesEnded事件,但是当我将它们沿着响应者链发送时,却没有任何反应。我已经尝试了以下所有方法。请注意,\'view \'是从touch.view派生的,而view.superview是我的\'loginView \'对象,其中包含被点击以将我带到这里的按钮:
 [view hitTest:frame.origin withEvent:event];
 [view touchesBegan:touches withEvent:event];
 [view.superview hitTest:frame.origin withEvent:event];
 [view.superview touchesBegan:touches withEvent:event];
 [[view nextResponder] touchesBegan:touches withEvent:event];
 [[view nextResponder] hitTest:frame.origin withEvent:event];
 [[[view superview] nextResponder] touchesBegan:touches withEvent:event];
 [[view superview] hitTest:frame.origin withEvent:event];
这些都不起作用,实际上\'[[view nextResponder] hitTest ... \'会生成警告。 我曾经尝试过resignFirstResponder,甚至打算尝试一个sendAction,但此时我只是想抓住稻草。我尝试将我的观点放在链的底部和顶部,并获得相同的结果。显然我缺少了一些东西,但看不到。 谁能告诉我下一步的方法吗? -山姆     
已邀请:
        我不确定自己到底想做什么,但是http://iphonedevelopment.blogspot.com/2008/10/bit-about-responder-chain.html可能会帮助您。 就个人而言,我正在UIView子类中进行传递的操作是这样的:
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event {
    [super touchesBegan:touches withEvent:event];
    [[self nextResponder] touchesBegan:touches withEvent:event];
}

- (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent *)event {
    [super touchesMoved:touches withEvent:event];
    [[self nextResponder] touchesMoved:touches withEvent:event];
}

- (void)touchesEnded:(NSSet*)touches withEvent:(UIEvent *)event {
    [super touchesEnded:touches withEvent:event];
    [[self nextResponder] touchesEnded:touches withEvent:event];
}
    

要回复问题请先登录注册