UIResponder
UIResponder定义了一系列的方法,用于接收和处理用户事件,例如触摸,运动(设备摇晃)和控制(文本编辑或播放音乐),覆盖UIResponder的一些方法,来实现自己的事件响应代码。
触摸事件
一根手指或多根手指触摸屏幕。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
一根手指或多根手指在屏幕上一动(随着手指的一动,相关的对象会持续发送消息)
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
一根手指或多根手指离开屏幕
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
触摸操作正常结束前,有事件中断了此操作(有电话打进来)
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;
当应用发生摸个触摸事件后(例如触摸开始、手指移动、触摸结束),系统都会将该事件添加至一个有UIApplication单例管理的事件队列。
UIGestureRecognizer
UIGestureRecognizer对象在识别手势时,会截取本应由其附着的视图自行处理的触摸事件。因此,附着了UIGestureRecognizer对象的视图可能不会收到常规的UIResponder消息,例如touchBegan:withEvent:。
UIMenuController
每个应用只有一个UIMenuController,使用此controller必须使相应的对象为第一响应者(becomeFirstResponder)。
如果实现某个UIResponderStandarEditActions协议方法,又不希望在UIMenuController对象显示相应的菜单项,可以覆盖**
canPerformAction: withSender:**然后针对相应的方法返回NO即可。