,它会将消息传递给它的继任者(也就是它的下一个响应者对象)....对于键盘事件, 响应是从窗口的第一响应者开始;
对于鼠标/触控板事件,响应是从用户操作的view开始;
如果事件消息在最初没有响应,那么响应链将按照视图的层级结构依次传递消息,直到窗口对象(NSWindow...响应链图
根据前文Event Message中讲到的鼠标/触控板事件是从用户操作的View开始,由于ViewController的View没有实现mouseDown:响应事件,所以响应链会将事件接着传递给...ViewController响应mouseDown:
为了验证响应链的事件传递过程,我们在工程中添加自定义XCResponseView,并实现mouseDown:事件处理逻辑,运行代码从控制台中的信息可以看出...答案:是改变第一响应者,因为键盘事件是从第一响应者开始的! 我们需要将响应链设置为下图的效果即可:(View获取键盘事件后如果自己不响应,就会依据响应链传递给ViewController)
?