接收事件消息的对象就叫Responder。Cocoa 的 NSResponder 抽象类封装了responder 的角色。NSResponder 连同三个子类NSView, NSWindow,NSApplication 可称做是(四大金刚)。因为这些类是AppKit事件处理架构的基石。
NSResponder 的事件处理消息的参数只有一个NSEvent类的实例。形式如:
- (void)mouseUp:(NSEvent *)theEvent;
NSEvent 类的事件处理方法:
– mouseDown:
– mouseDragged:
– mouseUp:
– mouseMoved:
– mouseEntered:
– mouseExited:
– rightMouseDown:
– rightMouseDragged:
– rightMouseUp:
– otherMouseDown:
– otherMouseDragged:
– otherMouseUp:
– scrollWheel:
– keyDown:
– keyUp:
– flagsChanged:
– helpRequested:
– tabletPoint:
– tabletProximity:
特殊键事件
– interpretKeyEvents:
– performKeyEquivalent:
– performMnemonic:
每个NSResponder 实例都有一指针指向下一个实例。当一个resonder 实例无法处理接收到的事件时,事件对象就会送去下一个nsresponder 实例,从而形成一个 responder chain. 这也是四人帮GOF 的Chain of Responsibility 模式。
http://www.research.umbc.edu/~tarr/dp/lectures/Chain.pdf
NSResponder 的事件处理消息的参数只有一个NSEvent类的实例。形式如:
- (void)mouseUp:(NSEvent *)theEvent;
NSEvent 类的事件处理方法:
– mouseDown:
– mouseDragged:
– mouseUp:
– mouseMoved:
– mouseEntered:
– mouseExited:
– rightMouseDown:
– rightMouseDragged:
– rightMouseUp:
– otherMouseDown:
– otherMouseDragged:
– otherMouseUp:
– scrollWheel:
– keyDown:
– keyUp:
– flagsChanged:
– helpRequested:
– tabletPoint:
– tabletProximity:
特殊键事件
– interpretKeyEvents:
– performKeyEquivalent:
– performMnemonic:
每个NSResponder 实例都有一指针指向下一个实例。当一个resonder 实例无法处理接收到的事件时,事件对象就会送去下一个nsresponder 实例,从而形成一个 responder chain. 这也是四人帮GOF 的Chain of Responsibility 模式。
http://www.research.umbc.edu/~tarr/dp/lectures/Chain.pdf