Responder入门理解笔记

58 篇文章 2 订阅
35 篇文章 0 订阅

响应链是一种消息处理机制,它是以组有序的响应者对象组成的链条。

当消息进入响应链条后,由响应者对象依次判断是否能够处理该消息,当一个响应者对象不能处理此条消息的时,它会将消息传递给它的继任者(也就是下一个响应对象)。响应链具有如下特性:

1.由AppKIt自动创建

2.一个App同一时刻可以包含任意数量的响应链,但同一时刻仅能有一条响应链处理消息。

3.可以在响应链中插入响应者:(通过NSResponder的setNextResponder:的方法)

4.不同的事件消息,在响应链中会有不同的响应逻辑;

响应消息的种类

响应链处理的消息大体上分为两种:Event Messages和Action Messages

Event Messages(事件消息:)

Event Messages主要是指的是由键盘/鼠标/触控板触发的NSEvent事件。几乎所有的Event Messages都由当前的窗口对象(NSWindow)的响应链进行处理;事件消息的处理起始于NSWindow的第一个对象

对于键盘事件,响应是从窗口的第一响应者开始;

对于鼠标/触控板事件,响应是从用户操作的view开始;

如果事件消息在最初没有响应,娜美响应链将按照视图的层级结构依次传递消息,直到窗口对象(NSwindow)为止,如果当前窗口对象是由NSWindowController管理的,那么这个NSWindowController将会成为最终的事件响应者;当整个响应链都没有完成对事件的处理时,响应链会调用最后的noREsponderFor:方法,可以根据具体需求来重写这个方法实现相应的功能;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值