什么是响应链
响应链是一种消息处理机制,它是由一组有序的响应者对象组成的链条.当消息进入响应链条后,由响应者对象依次判断是否能够处理该消息,当一个响应者对象不能处理此条消息时,它会将消息传递给它的继任者...响应链具有如下特性:
由App Kit自动创建的;
一个App可以包含任意数量的响应链,但同一时刻仅能有一条响应链处理消息;
可以在响应链中插入响应者:(通过NSResponder的 setNextResponder...对于键盘事件, 响应是从窗口的第一响应者开始;
对于鼠标/触控板事件,响应是从用户操作的view开始;
如果事件消息在最初没有响应,那么响应链将按照视图的层级结构依次传递消息,直到窗口对象(NSWindow...)为止,如果当前窗口对象(NSWindow)是由NSWindowController管理的,那么这个NSWindowController将会成为最终的事件响应者;当整个响应链都没有完成对事件的处理时,响应链会调用最后响应者的...ViewController响应mouseDown:
为了验证响应链的事件传递过程,我们在工程中添加自定义XCResponseView,并实现mouseDown:事件处理逻辑,运行代码从控制台中的信息可以看出