【问题标题】:UIKit: Initial first responder?UIKit:最初的第一响应者?
【发布时间】:2014-03-10 05:30:20
【问题描述】:

当应用启动时,最初的第一响应者是什么?

根据UIKit docs,可以使用 becomeFirstResponder 消息设置第一响应者。但是,如果没有发送此消息,那么最初的第一响应者是什么?用户界面应用程序?关键窗口?

另外,是否有指向当前第一响应者的属性?

【问题讨论】:

    标签: ios iphone uikit first-responder


    【解决方案1】:

    在 MacOS 和 iOS 中,每个窗口都有自己的 UIResponder(或者,更准确地说,每个窗口IS都是一个 UIResponder -- UIWindow 是 UIResponder 的后代),这意味着每个窗口都可以有自己的第一响应者。在 MacOS 上,可以有许多打开的窗口(每个窗口都有一个第一响应者),而在 iOS 下,通常任何时候都会显示一个 UIWindow。

    每个窗口都有一个第一响应者(无论是窗口本身,还是接收键盘事件的文本字段,或其他)。您可以通过"nextResponder" API 遍历每个窗口来查询每个窗口的响应者链。

    我可能过于简化了一些事情,但为了一个好的、简单的总结答案,我希望这会有所帮助。 Here is more information about the iOS Responder chain,它显示了初始视图(例如第一响应者)如何获取事件,如果它无法处理它,则将事件传递给父视图、窗口和应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-21
      • 1970-01-01
      • 2011-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多