鼠标(或触控板)事件派发路径
前面已经提到过,一个NSWindow对象使用sendEvent:方法将鼠标事件派发给用户操作的视图(NSView)对象.那么NSWindow是怎样识别是哪个NSView在被用户操作呢...NSWindow对象是将事件以一个与鼠标相关的NSResponder明确消息方式发送视图(NSView),比如mouseDown:,mouseDragged:,或者rightMouseUp:,如果是鼠标按下事件...鼠标拖动事件和鼠标抬起事件通常都会被发送给之前鼠标按下的那个视图(NSView)对象.
鼠标移动事件通常会派发到第一响应者....NSApplication接收到Key equivalents(快捷键)事件时,会先传递给key window的视图(NSView)体系中,通过给每个对象发送performKeyEquivalent:消息来确认是否有控件响应此事件...(根据这个方法的返回值来确认:YES代表响应,NO则是不响应默认为NO),如果视图(NSView)体系中没有任何对象响应,那么NSApplication会将这个快捷键事件发送给menu bar(菜单栏)