博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Responder对象
阅读量:4658 次
发布时间:2019-06-09

本文共 1235 字,大约阅读时间需要 4 分钟。

Responder对象
响应者是一个对象,它可以响应事件并处理它们。
所有响应者对象是类的,最终从UIResponder的( IOS)或NSResponder ( OS X)继承实例。
这些类声明一个编程接口,事件处理,并定义为响应一个默认的行为。
一个应用程序的可视对象几乎都是反应,例如,窗口,视图和控件和应用程序对象是一个响应者为好。
在iOS中,视图控制器(的UIViewController对象)也响应对象。
Art/responder.jpg
接收事件,响应者必须实现适当的事件处理方法,在某些情况下,告诉应用程序,它可以成为第一个响应者。
第一响应者接收到某些事件第一
在一个应用程序,由最先收到多种事件的响应者对象被称为第一响应者。
它接收键盘事件,移动事件,并采取行动的消息,等等。 
(鼠标事件和多点触控事件第一次去是鼠标指针或手指下的视图;这种观点可能会或可能不会是第一个响应者)的第一个响应者通常是在一个应用程序认为最适合于处理窗口的视图
一个事件。
要接收一个事件,响应者也必须表明其愿意成为第一个响应者,它这样做以不同的方式为每个平台:
/ / OS X
- ( BOOL ) acceptsFirstResponder {return YES ; }
 
/ /iOS
- ( BOOL ) canBecomeFirstResponder {return YES ; }
除了接收事件消息,响应者可以接收没有指定的目标操作的消息。 
(动作消息是由如按钮,当用户操纵它们的控件控件发送。 )
响应链协同启用事件处理
如果第一个响应者不能处理一个事件或动作消息,它将其转发到所谓的响应链连结的系列“下一个响应者” 。
在响应链中允许响应者对象传送处理的事件或动作消息在应用程序的其他对象的责任。
如果在响应链中的对象不能处理这个事件或动作,它传递消息给链中的下一个响应者。
该消息传播链向上,向更高级别的对象,直到它被处理。
如果它没有被处理,该应用将其丢弃。

响应者链的iOS (左)和OS X (右)

一个事件的路径。
一个事件了响应者链的一般路径开始于一个视图的第一个鼠标指针或手指下的响应或视图。
从那里,它进行了视图层次结构的窗口对象,然后到全局应用程序对象。
然而,响应者链中的iOS事件增加了一个变化到这个路径:如果视图是由一个视图控制器管理,如果视图不能处理事件,视图控制器成为下一个响应者。
操作消息的路径。
采取行动的消息, OS X和iOS的延长响应链到其他对象。
在OS X中,响应链的操作的消息不同,基于文档的架构,使用窗口控制器( NSWindowController )的应用程序,以及一个应用程序,既不符合这些类别的应用程序。
此外,如果在OS X的应用程序都包含一个重要窗口和一个主窗口,响应链沿着这一个动作消息传播可能涉及两个窗口的视图层次结构。

转载于:https://www.cnblogs.com/zsw-1993/p/4879595.html

你可能感兴趣的文章
hdu 1551 恶心的卡精度题
查看>>
Android签名机制
查看>>
python 之Twsited
查看>>
设置SQL PLUS环境
查看>>
关于虚拟机VM
查看>>
springboot快速入门(三)——Controller的使用
查看>>
nodejs 解析excel文件
查看>>
eclipse、tomca和jvm的相关内存配置
查看>>
Asis CTF 2015-Car_Market
查看>>
Java基础之反射生成JDK动态代理
查看>>
ES5中数组新增的方法说明
查看>>
明眼人告诉你大学毕业后拉开…
查看>>
Application, Session, Cookie, Viewstate, Cache对象用法和区别
查看>>
instanceof
查看>>
python内建函数
查看>>
Android开发:《Gradle Recipes for Android》阅读笔记(翻译)5.3——使用Robotium进行功能测试...
查看>>
阿里云 centos7 django + uWSGI+Nginx + python3 部署攻略
查看>>
Springboot的静态资源访问
查看>>
Django 信号
查看>>
redis不重启,切换RDB备份到AOF备份
查看>>