但更正式地,第一响应者的范围是多少?例如,它是一个应用程序范围的响应者吗?似乎是第一个回应者只是说这个特定的对象会收到互动的通知.另一个响应者能否窃取第一响应者状态?
请解释或指导我一些相关信息.我已经阅读了苹果对应答者的一般解释.我正在寻找一个更多的内容的解释.
解决方法
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
我希望这有帮助!