译自:swiftandpainless.com/selector-an…


由于 Swift 2.2 中 Selector 的新语法,我在 “Utilize the responder chain for target action” 一文中使用的方法产生了一个警告,让我们来修复它吧。

协议实现

首先,我们添加一个协议:

@objc protocol DetailShowable {@objc func showDetail()
}
复制代码

然后,我们可以像 Andyy Hope 的这篇神奇的博文中描述的那样,为 Selector 添加一个扩展,代码如下:

private extension Selector {static let showDetail = #selector(DetailShowable.showDetail)
}
复制代码

将 action 添加到响应链就会像下面这段代码一样简单:

button.addTarget(nil,action: .showDetail,forControlEvents: .TouchUpInside)
复制代码

接下来,在响应者链中的一些响应对象需要满足 DetailShowable 协议。

你可以在 GitHub 找到相关代码。


如有任何知识产权、版权问题或理论错误,还请指正。
https://juejin.im/post/5a3216ed5188257dcc2fa3d0
转载请注明原作者及以上信息。

[翻译练习] #selector() 和响应者链相关推荐

  1. iOS底层原理探究 第一探. 事件传递和响应者链

    一. 声明:  本文意在探讨, 也参考了几位大神的文章, 在最后我会把链接发出来, 如果有理解错误的地方, 请大神们指正哈! 二. 前言:  最近自己做项目的时候, 用到了UITabbarContro ...

  2. iOS响应者链彻底掌握

    点我跳转原文地址 概述 iOS响应者链(Responder Chain)是支撑App界面交互的重要基础,点击.滑动.旋转.摇晃等都离不开其背后的响应者链,所以每个iOS开发人员都应该彻底掌握响应者链的 ...

  3. UI一揽子计划 4 (Touch 、摇一摇、响应者链)

    一.touch - (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event //开始触摸,就只被执行一次 {  //  NSLog(@ ...

  4. iOS 之 事件响应者链

    响应者链表示一系列的响应者对象.事件被交由第一个响应者对象处理,如果第一个响应者不处理,事件就沿着响应者链向上传递,交由下一个响应者(Next responder). View->ViewCon ...

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

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

  6. 分割view窗口不响应onmousewheel_什么是响应者链?ios面试攻克篇(三)

    '写在前面的话' 这些是我对iOS面试时会碰到的问题的解决方法, 整理出来分享给大家,有些错误不要 太好笑,希望对大家有所帮助. 大家有更好的解决办法也欢迎沟通交流. 一直以来都有写点儿东西的想法, ...

  7. [置顶] Responder一点也不神秘————iOS用户响应者链完全剖析

    这篇文章想跟大家分享的主旨是iOS捕获用户事件的各种情况,以及内部封装的一些特殊事件. 我们先从UIButton谈起,UIButton大家使用的太多了,他特殊的地方就在于其内置的普通Default/高 ...

  8. iOS之深入解析响应者链Responder Chain

    一.响应链事件 iOS 中的事件可分为:触摸事件(multitouch events).加速计事件(accelerometer events).远程控制事件(remote control events ...

  9. web3j官网的完整中文翻译(java开发区块链以太坊应用的开源类库)

    2019独角兽企业重金招聘Python工程师标准>>> web3j是一个轻量级.高度模块化.响应式.类型安全的Java和Android类库提供丰富API,用于处理以太坊智能合约及与以 ...

最新文章

  1. android androidx版本,Android AndroidX 简介与迁移
  2. C#开发Activex控件--与JavaScript的互调
  3. 频率单位Hz、MHz、GHz、THz、PHz、EHz换算关系
  4. 傲澜智伴机器人_通辽智伴机器人,智伴机器人招商,傲澜智伴机器人
  5. matlab光学原理仿真应用衍射,基于Matlab的光学衍射实验仿真
  6. 2021毓英中学高考成绩查询入口,2021年泉州各高中高考成绩排名及放榜最新消息...
  7. css3 实现盒子四周光晕_使用CSS3做出带有光晕流星旋转光环的效果 -
  8. 如何在Debian系统下搭建SVN
  9. 随机池化(Stochastic Pooling)
  10. 取决于数学符号_设计就好像您的生活取决于它
  11. 【软考-软件设计师精华知识点笔记】第十章 网络与信息安全
  12. RTP/RTCP协议解析
  13. Python之图片转PDF
  14. 想要转行产品经理,可是社招都要有产品经理相关经验的,该如何转行呢?
  15. 【JS面试题】面试官问我:遍历一个数组用 for 和 forEach 哪个更快?
  16. 小学六年级走进计算机ppt,小学信息技术《走进计算机》PPT课件.ppt
  17. 我眼中的光明·第一周
  18. 欧洲语言参照标准C2,成都排名前十的德语培训班-排行榜
  19. 使用UltraISO制作U盘启动
  20. 微软活动目录的物理结构

热门文章

  1. Android中DatePicker日期选择器的使用和获取选择的年月日
  2. Winforn中使用SaveFileDialog实现另存为对话框
  3. SSM+KindEditor实现富文本编辑器图片上传
  4. Eclipse中新建Maven项目没有java以及test目录
  5. vue中使用moment来实现导出excel时添加格式化的时间戳
  6. Webstorm+cordova打包vue成Android项目
  7. 【TensorFlow】笔记2:深层神经网络
  8. 源代码主干分支开发四大模式
  9. 关于picgo中阿里云图床的设置
  10. 东北大学计算机学姐,东北的大学怎么样?聊聊哈工大、吉大、大工、东北大学、东北师大...