查看Apple GLPaint示例代码。
我看到PaintingViewController和PaintingView都实现了
- (BOOL)canBecomeFirstResponder {
return YES;
}
为什么是二元性?一般来说,UIView是否应该负责处理硬件生成的触摸事件?正如The Runtime Interaction Model for Views
中所述答案 0 :(得分:0)
不,有一个简单的例子:
想象一下,你有presentedController
。然后你不希望presentingController
处理触摸事件,即使它仍然可见。
在事件传递中查看控制器层次结构非常重要。
请参阅UIViewController
文档中的说明:
视图控制器与其管理的视图紧密绑定,并参与用于处理事件的响应程序链。视图控制器也是UIResponder对象,并插入到视图控制器的根视图和该视图的超级视图之间的响应链中,该视图通常属于不同的视图控制器。如果视图控制器的视图都没有处理事件,则视图控制器可以选择处理事件或将其传递给superview。