UIKit:最初的第一响应者?

时间:2014-03-10 05:30:21

标签: ios iphone uikit first-responder

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

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

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

1 个答案:

答案 0 :(得分:3)

MacOS& iOS,每个窗口都有自己的UIResponder(或者更准确地说,每个窗口 IS UIResponder - UIWindow来自UIResponder),这意味着每个窗口都可以有他们自己的第一响应者。在MacOS上,可以有许多打开的窗口(每个窗口都有第一个响应者),在iOS下,通常一次只显示一个UIWindow。

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

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