Macos OSX手势和响应链

Macos OSX手势和响应链,macos,cocoa,gesture,Macos,Cocoa,Gesture,我有一个带有内容视图的窗口,它可以做一些事情,包括管理类似iOS的导航控制器 窗口的内容视图最前面的视图是一个不可见的自定义视图,在此处设置用于管理整个窗口的拖放操作,称为DragNDropView 现在,我想管理在导航控制器中导航的滑动手势(仅左滑动)。 不幸的是,DragNDropView捕捉到了这个手势(如果我实现-(void)swipeWithEvent:并在其上设置acceptTouchEvents:YES),我不希望这样,因为我希望它后面的视图捕捉到它,所以我当然在DragNDrop

我有一个带有内容视图的窗口,它可以做一些事情,包括管理类似iOS的导航控制器

窗口的内容视图最前面的视图是一个不可见的自定义视图,在此处设置用于管理整个窗口的拖放操作,称为DragNDropView

现在,我想管理在导航控制器中导航的滑动手势(仅左滑动)。 不幸的是,DragNDropView捕捉到了这个手势(如果我实现-(void)swipeWithEvent:并在其上设置acceptTouchEvents:YES),我不希望这样,因为我希望它后面的视图捕捉到它,所以我当然在DragNDropView上将acceptTouchEvents设置为NO

我很惊讶手势事件没有“向下”视图层次结构,因为当最前面的视图将acceptTouchEvents设置为NO时,下面的视图确实将acceptTouchEvents设置为YES

如果最前面的视图不处理手势,则手势事件不会传递给它后面的视图???? 手势处理似乎在NSResponder中,所以我甚至希望我的NSViewController子类能够处理它,但似乎我不能


有人能帮我理解这个问题吗?

我想你自己也有这个问题。第一个响应者期望用户响应,但您要求其家长与第一个响应者交互!!!我不太明白你的意思。最前面的视图(DragNDropView)设置为acceptTouchEvents:NO,因此,依我看,它应该转发响应器链中的所有手势事件NO?