Joe*_*son 18 first-responder ios
我知道第一个响应者对象是根据输入活动等接收回调信号,并且它会将其冒充链,直到找到愿意处理它的响应者.
但更正式的是,第一响应者的范围是什么?例如,它是应用程序范围内的响应者吗?似乎第一响应者只是说这个特定对象将收到交互通知.另一个响应者可以窃取第一响应者状态吗?
请向我解释或指导一些相关信息.我已经阅读了Apple对响应者的一般解释.我正在寻找一个更加内置的解释.
Rya*_*ger 21
iOS中第一个响应者的范围由视图层次结构决定.请记住,响应者是响应者层次结构的一部分,并由Apple的文档定义:
响应者是一个可以响应事件并处理它们的对象.所有响应者对象都是最终从UIResponder(iOS)或NSResponder(OS X)继承的类的实例.
实际上,所有响应者都是潜在响应者链的一部分,一直到应用程序本身.这意味着响应者的范围取决于您必须走多远才能获得能够处理响应的对象.如果第一个响应者是UI元素,例如UITextField,则您的范围与该响应者的范围相关联.
在此图像中,iOS第一响应者层次结构显示在左侧(OS X在右侧):

要回答问题的第二部分,是的,如果用户与元素交互,对象可以"窃取"第一响应者状态,例如:
......并且你可以通过某些功能赋予他们第一响应者状态:
[textField3 becomeFirstResponder]; //This is now the first responder
[textField4 becomeFirstResponder]; //Now textField4 has 'stolen' first responder status
[textField4 resignFirstResponder]; //The text field has resigned its first responder status to the next level up
Run Code Online (Sandbox Code Playgroud)
对于其他读过这篇文章的人来说,还没有找到Apple的文档,一个好的起点是响应者层次结构解释,请点击此处:https: //developer.apple.com/library/ios/documentation/General/Conceptual/Devpedia- CocoaApp/Responder.html
我希望这有帮助!
mat*_*att 11
这是窗户的属性.窗口始终不超过一个第一响应者.任何UIResponder都可以通过发送来声明第一响应者状态becomeFirstResponder,这就是为什么您可以通过向其发送该消息来使UITextField"聚焦".
| 归档时间: |
|
| 查看次数: |
9078 次 |
| 最近记录: |