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

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

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

最佳答案

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

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

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

关于ios - UIKit:最初的第一响应者?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22292690/

10-09 09:14