确定响应者链是否将处理操作

2024-03-26

响应者链很酷 http://www.cocoanetics.com/2012/09/the-amazing-responder-chain/.

特别是,能够将自定义操作发送给第一响应者,这些操作将冒泡给其他可能感兴趣的人:[[UIApplication sharedApplication] sendAction: @selector(commandToSend) to: nil from: self forEvent: nil].

或者减少自定义操作:

[[UIApplication sharedApplication] sendAction: @selector(resignFirstResponder) to: nil from: self forEvent: nil]

我想知道 – 有没有办法测试事前是否处理来自特定发件人的特定操作如果现在发送?一个明显的用途是启用和禁用发送操作的按钮,具体取决于当前是否要处理该操作。

如果你碰巧认识第一反应者,我想你可以做[aResponder targetForAction: @selector(methodYouWantToSend) withSender: selfOrSomethingElse],并检查答案是否为零。但似乎没有等效的方法UIApplication's sendAction:…这将在第一响应者处自动启动并开始工作。


有一个这里是令人愉快的解决方案 https://stackoverflow.com/a/21330810/2547229通过利用响应者链找到第一响应者。

一旦您知道了第一响应者,就可以轻松询问当前响应者链是否处理特定操作。如果您愿意,您甚至可以找出谁来处理它。

const SEL action = @selector(theActionYouWantToSend);
UIResponder *const currentTarget = [[UIResponder firstResponder] targetForAction: action  withSender: self];
const bool actionIsHandled = currentTarget != nil;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

确定响应者链是否将处理操作 的相关文章

随机推荐

  • HMLocation 事件示例

    我正在我的 HMHome 中实现 HMLotinEvent 我正在尝试下面的代码 但我没有得到的一件事是我不知道如何执行功能 例如如果我离开家必须关闭所有灯 我没有找到任何与操作集相关的方法 如果我错了 请纠正我 要求 我想关闭所有配件 以
  • iPad3 高分辨率视网膜显示问题

    我正在使用 Xcode 4 2 iOS SDK 5 0 为 iPad3 Retina Display 开发一个应用程序 我正在使用以下代码片段来检测视网膜 高分辨率 显示 if UIScreen mainScreen respondsToS
  • 没有函数体的函数是什么意思?

    我正在阅读打包的代码time 然后我想知道如何func After d Duration lt chan Time作品 我发现代码如下 func After d Duration lt chan Time return NewTimer d
  • SASS 如何帮助我开发响应式网页设计?

    我使用 CSS 进行设计已有多年 但我现在才刚刚学习如何使用 SASS 这是一个非常初学者的问题 所以请耐心等待 我开始研究 SASS 的原因是因为我想开发响应式网页设计 但希望有一种更好的方法来实现它 而不是为每个屏幕尺寸手动制作不同的样
  • 如何使用 Python 匹配相似的坐标?

    背景 我收到了四个数据目录 其中第一个目录 我们称之为 Cat1 给出了场 1 和 2 中无线电源的坐标 赤经和赤纬 RA 和 Dec 第二个目录 Cat2 给出了 RA和 Dec 适用于领域 1 中的无线电源和红外 IR 源 第三个目录
  • RewriteBase 的值可用作变量/引用吗?

    我正在编写一个 htaccess 文件 该文件将检查请求的页面是否存在于缓存中 为了执行检查 并节省输入 我使用缓存的位置设置一个 ENV 变量 all this works as I expect
  • C函数语法,参数类型在参数列表之后声明

    我对 C 比较陌生 我遇到了一种以前从未见过的函数语法形式 其中参数类型是在参数列表之后定义的 有人可以向我解释一下它与典型的 C 函数语法有何不同吗 例子 int main argc argv int argc char argv ret
  • 长 vs {0L}[0]

    在我们的一项旧服务中 我发现了这样一段代码 评论为原创 long tasksCounter 0 boxing for long counters long errorsCounter 0 boxing for long counters 此
  • R:传递函数参数以覆盖内部函数的默认值

    在 R 中 我想做这样的事情 我有一个函数 f1 它有一个带有默认值的参数 k 3 f1 function x k 3 u x 2 k u 然后我定义了第二个函数 f2 来调用 f1 f2 function z s s f1 z 允许 f2
  • jQuery ajax() 预加载多个内容

    我使用以下代码来预加载 mp3 ajax url boom mp3 success function done 我是否可以预加载多个元素 例如图像和 mp3 e g ajax url boom mp3 moo jpg success fun
  • 获取对象中调用者类的名称的最佳方法是什么?

    我可以使用这个来完成这个工作 scala gt object LOGGER def warning msg String implicit className String className defined object LOGGER s
  • 如何使用 ColdFusion 防止 SQL 注入

    ColdFusion 中如何防止 SQL 注入 我对这种语言 框架很陌生 这是我的示例查询
  • addCleanup与tearDown

    最近 内德 巴切尔德 Ned Batchelder 他在 PyCon 2016 上的演讲 http nedbatchelder com text machete html noted 如果您正在使用unittest编写你的测试 一定要使用a
  • Docker 镜像存储在主机的哪里?

    我设法在目录下找到容器 var lib docker containers 但我找不到图像 下有哪些目录和文件 var lib docker 的内容 var lib docker目录因情况而异Docker 用于存储的驱动程序 https g
  • 104、“连接由对等方重置”套接字错误,或关闭套接字何时会导致 RST 而不是 FIN?

    我们正在并行开发 Python Web 服务和客户端网站 当我们从客户端向服务发出 HTTP 请求时 一次调用会在 socket py 的 read 中持续引发一个 socket error 104 Connection reset by
  • 地图样式更改时 Google 地图会更改图标标记

    我正在做一个网络动态项目 在我的 html jsp 页面主体中使用 Google 地图 我创建了一个函数 通过 lat lng map 创建一个标记 并在标记的参数中使用特殊的 image png 作为图标 在我的地图中 我制作了两种不同的
  • Jquery Flot“plothover”事件不起作用

    我有一个似乎无法追踪的问题 我正在使用 Flot 绘制一些数据图表 超级简单 我想添加您在这里看到的悬停效果 浮点数示例 http people iola dk olau flot examples interacting html 不幸的
  • 如何合并 Google 字体导入

    我正在使用带有 Divi 主题的 WordPress 有这样的代码 function et divi fonts url fonts url Translators If there are characters in your langu
  • 为什么调用 setenv("OS_ACTIVITY_DT_MODE", "disable", 1) 不会影响日志记录?

    可以通过设置在 Swift 中隐藏由第 3 方库生成的过于详细的日志OS ACTIVITY MODE环境变量为disable在您的跑步计划中 如下图所示 这让所有人都沉默NSLog您的应用程序的输出 我只想对某些呼叫禁用它 我尝试像这样设置
  • 确定响应者链是否将处理操作

    响应者链很酷 http www cocoanetics com 2012 09 the amazing responder chain 特别是 能够将自定义操作发送给第一响应者 这些操作将冒泡给其他可能感兴趣的人 UIApplication