启动后为什么First Responder`nil`?

时间:2015-12-11 11:14:49

标签: ios swift uikit first-responder

以下是说明问题的最小工作示例:https://bitbucket.org/7331/firstrespondertest/

在单视图应用程序启动后,将哪个对象设置为keyWindow的第一响应者(假设我尚未与应用程序进行交互,并且我的代码未明确调用becomeFirstResponder() )?

换句话说 - 什么对象将First Responder设置为初始值? (或者新创建的UIWindow的第一响应者是什么?)

当我调试单一视图应用程序时,我检查了keyWindow的第一响应者并发现它是nil - 考虑到ViewController,这看起来很奇怪设备被动摇时会调用motionBegan()(尽管canBecomeFirstResponder()返回false)。

class ViewController: UIViewController {
    override func canBecomeFirstResponder() -> Bool {
        return false
    }

    override func motionBegan(motion: UIEventSubtype, withEvent event: UIEvent?) {
        print("motionBegan")
    }
}

此外:当我通过nib加载UINib文件时,nib的子视图会在内部被becomeFirstResponder()的初始化程序调用{​​{1}}吗?

*我使用UINib的私有API来检查First Responder。 在LLDB: UIWindow

0 个答案:

没有答案