但更正式地,第一响应者的范围是多少?例如,它是一个应用程序范围的响应者吗?似乎是第一个回应者只是说这个特定的对象会收到互动的通知.另一个响应者能否窃取第一响应者状态?
解决方法
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 举报,一经查实,本站将立刻删除。