Responder是一个可以响应事件并出来这些事件的对象。

所有的Responder对象都是从UIResponder (iOS) 或者 NSResponder (OS X)类继承而来的实例。这些类声明了事件的处理接口,同时也定义响应者的行为。

在一个app中可见的对象大部分都是响应者,例如:window,view,和control,同时app对象也是一个响应者。另外在ios中UIViewController也是响应对象。

为了接收时间,响应者必须完成事件的处理方法,来告诉app它可以成为第一响应者。

响应者接收事件

在app中,第一响应者可以接收很多种事件。(键盘事件,移动事件,动作消息等等)。为了接受事件,响应者必须表明它愿意成为第一响应者,我们可以使用下面的函数来实现。

// OS X

- (BOOL)acceptsFirstResponder { return YES; }

//iOS

- (BOOL)canBecomeFirstResponder { return YES; }

响应链和事件控制之间的合作

在app中操作的时候,如果第一响应者(在视图的最顶端的视图,或者可以说是我们首先在app中看见的视图)不能接收事件或者消息的时候,它会将其转发到响应链结构中的下一个响应者。在app中,响应链允许响应者转发事件的或者消息处理给其他的对象。如果一个对象在响应链中,但是它不能处理事件或者消息动作,它就会把事件或者消息动作传给响应链中的下一个响应者。传递的消息会沿着响应链向上传递给更高级别的对象,直接事件被处理,而如果传递到响应链的最顶层,事件还是未被处理,那么app就会把这个事件丢掉。

下面看iOS(左边)和Mac(右边)下响应链传递方式

Responder object相关推荐

  1. Responder Chain简析

    一.responder对象 在iOS系统中,能够响应并处理事件的对象称之为responder object, UIResponder是所有responder对象的基类,在UIResponder类中定义 ...

  2. responder nextResponder

    一.responder对象 在iOS系统中,能够响应并处理事件的对象称之为responder object, UIResponder是所有responder对象的基类,在UIResponder类中定义 ...

  3. 个人总结------高级知识点必会

    高级知识点之必会 共44题 1.OC中创建线程的方法是什么?假设指定在主线程中执行代码?怎样延时执行代码.[难度系数★★] 1)创建线程的方法 NSThread NSOperationQueue和NS ...

  4. Cocoa Touch事件处理流程--响应者链

    一.事件分类 对于IOS设备用户来说,他们操作设备的方式主要有三种:触摸屏幕.晃动设备.通过遥控设施控制设备.对应的事件类型有以下三种: 1.触屏事件(Touch Event) 2.运动事件(Moti ...

  5. Objective-C原理系列(一)

    2019独角兽企业重金招聘Python工程师标准>>> Objective-C 简称OC(下面以此代称),是在C语言的基础上,增加了一层最小的面向对象语言.是一种静态输入的语言,即& ...

  6. 2021年大厂iOS 面试题 - 前篇

    Swift好多坑,一个人填不来,怎么办 问身边同事吧,又怕被暗笑技术差劲 1.如何追踪app崩溃率,如何解决线上闪退 当iOS设备上的App应用闪退时,操作系统会生成一个crash日志,保存在设备上. ...

  7. [转]那些著名或非著名的iOS面试题(上)

    1.如何追踪app崩溃率,如何解决线上闪退 当iOS设备上的App应用闪退时,操作系统会生成一个crash日志,保存在设备上.crash日志上有很多有用的信息,比如每个正在执行线程的完整堆栈跟踪信息和 ...

  8. ⑪(面试篇 2/3)、《史上最全iOS八股文面试题》2022年,金三银四我为你准备了,iOS《1000条》笔试题以及面试题(包含答案)。带面试你过关斩将,(赶紧过来背iOS八股文)

    iOS面试题 一共分为笔试题和面试题两部分 笔试题 一共分为10个 总共613题 面试题 一共400题 笔试题 一个10个系列 分别为 ①(语法篇) 共147题 已更新 ②(常识篇) 共72题 已更新 ...

  9. 【精】iOS知识树,知识点(包括对象、Block、消息转发、GCD、运行时、runloop、动画、Push、KVO、tableview,UIViewController、提交AppStore)

    本文旨在总结iOS知识网络,知识点,该知识网络罗列出常见UIKit.Foundation的对象特点和一些使用经验,可以看成是一本书:文本编辑采用树的形式,对知识点进行罗列,并标注一些使用经验(★)希望 ...

最新文章

  1. Robotaxi有进账了!中国自动驾驶商业化迈出一大步
  2. 寻找最大的K个数,Top K问题的堆实现
  3. atitit.spring hibernate的事务机制 spring不能保存对象的解决
  4. 谭浩强c语言规范化的指数形式,C语言程序设计谭浩强第四期末复习重点.docx
  5. Js模块化开发的理解
  6. Java面试之锁-读写锁
  7. 精通innodb引擎_《MySQL技术内幕:InnoDB存储引擎》PDF 下载
  8. 各版本Anaconda的下载、安装和卸载(适用于Windows/Linux系统)
  9. Spark核心概念与案例拆解
  10. JS初学者使用jQuery开发一款弹幕射击游戏
  11. 文本编辑器 - 同时编辑多行
  12. OneZero第一次站立会议Sprint Planning Meeting(2016.3.21)
  13. 小提琴弓是如何出现的?
  14. 深信服实习面经11_02
  15. LAN-Cruising
  16. linux命令格式和常用命令
  17. 邮件常见异常:javax.mail.MessagingException: Could not connect to SMTP host
  18. 不权威的国产CPU发展历程
  19. 深天马A去年实现净利润9.84亿元 同比减少35.88%
  20. linux中的lo介绍及作用(回环接口 回环IP)

热门文章

  1. python中怎么表示正数_python中整数除法的正负号
  2. dfp方法例题_数学软件 之 基于MATLAB的DFP算法
  3. 一个屌丝程序员的青春(三零八)
  4. 我利用业余时间通过写作挣了3个顶配Mac Pro
  5. python asyncio原理_Asyncio 源码分析
  6. 关于docker下载镜像失败问题
  7. leetcode第121题——买股票的最佳时机
  8. 投资泰辑科技,七牛云积极布局物联网,构筑产业互联新生态
  9. 文献略读 Dictionary optimization for greedy recovery in Modulated WidebandConverter based...
  10. 张高兴的 Windows 10 IoT 开发笔记:使用 ULN2003A 控制步进电机