实例对象有三个组件:事件消息(鼠标,键盘,触控板等产生的),动作消息(action message: 比如NSButton 执行target 的action 方法,就属于一种action消息),和响应链条...,告知其已经添加了一个事件到队列中待处理.
5.macOS的窗口服务收到驱动程序的消息后,会寻找对应的进程(也就是应用程序).
6.当窗口服务找到App 进程后,会将事件派发到这个应用进程的runloop...7.当应用进程的runloop接收到事件后,就开始了事件响应机制,从此刻后,将事件将遵循NSResponder类的处理....鼠标(或触控板)事件派发路径
前面已经提到过,一个NSWindow对象使用sendEvent:方法将鼠标事件派发给用户操作的视图(NSView)对象.那么NSWindow是怎样识别是哪个NSView在被用户操作呢...当用户在一个视图控件上点击鼠标按钮后,如果包含这个视图的NSWindow不是key Window,那么这个NSWindow将会变成key Window,并且丢弃本次的鼠标事件;也就是说如果你用鼠标点击了一个不是