微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

iOS中第一个应答者的正式定义是什么?

我明白第一个响应者的对象是根据输入活动等接收一个回调信号,并且它会将它引起来,直到响应者愿意处理它.

但更正式地,第一响应者的范围是多少?例如,它是一个应用程序范围的响应者吗?似乎是第一个回应者只是说这个特定的对象会收到互动的通知.另一个响应者能否窃取第一响应者状态?

请解释或指导我一些相关信息.我已经阅读了苹果对应答者的一般解释.我正在寻找一个更多的内容的解释.

解决方法

iOS中的第一个响应者的范围由视图层次结构决定.记住,响应者是响应者层次结构的一部分,由Apple的文档定义:

A responder is an object that can respond to events and handle them. All responder objects are instances of classes that ultimately inherit from UIResponder (iOS) or NSResponder (OS X).

实际上,所有回应者都是潜在响应者的一部分,一直领先于应用程序本身.这意味着响应者的范围是由你必须走多远才能获得能够处理响应的对象所决定的.如果第一个响应者是UI元素,例如UITextField,则您的作用域与该响应者的范围相关联.

在此图像中,iOS第一响应者层次结构显示在左侧(右侧的OS X):

为了回答问题的第二部分,是的,如果用户与元素交互,对象可以“窃取”第一响应者状态,例如:

>用户点击textField1.现在是第一个回应者.
>用户点击textField2.它已经从textField1接管了第一个响应者状态.

…您可以通过某些功能为他们提供第一反应者状态:

[textField3 becomeFirstResponder]; //This is Now the first responder
[textField4 becomeFirstResponder]; //Now textField2 has 'stolen' first responder status
[textField4 resignFirstResponder]; //The text field has resigned its first responder status to the next level up

对于没有阅读这个Apple的文档的其他人来说,一个很好的起点是在这里找到的Responder层次结构解释:
https://developer.apple.com/library/ios/documentation/General/Conceptual/Devpedia-CocoaApp/Responder.html

我希望这有帮助!

原文地址:https://www.jb51.cc/iOS/330081.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐