Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS:全局检测键盘输入_Ios_Swift - Fatal编程技术网

iOS:全局检测键盘输入

iOS:全局检测键盘输入,ios,swift,Ios,Swift,如果我的应用程序在一定时间内未被使用,我想注销我的用户。对于触摸交互,我可以覆盖UIWindow上的sendEvent。但对于键盘输入,它不起作用 当用户使用键盘时,是否可以接收事件?(我不想将UITextField等子类化,因为我的应用程序中也有webview)。也许断开用户连接的更好方法是使用func应用程序willresignactive(application:UIApplication)或func应用程序identinterbackground(application:UIApplic

如果我的应用程序在一定时间内未被使用,我想注销我的用户。对于触摸交互,我可以覆盖UIWindow上的sendEvent。但对于键盘输入,它不起作用


当用户使用键盘时,是否可以接收事件?(我不想将UITextField等子类化,因为我的应用程序中也有webview)。

也许断开用户连接的更好方法是使用
func应用程序willresignactive(application:UIApplication)
func应用程序identinterbackground(application:UIApplication)


为了防止用户与键盘交互,您可以通过以下函数实现
UITextFieldDelegate
,该函数允许您知道用户上次键入字符的时间:
func textField(utextfield:UITextField,shouldChangeCharacters范围:NSRange,replacementString:string)->Bool

您可以覆盖
UIWindow
的hitTest-它还处理系统键盘触摸:

extension UIWindow {
    override open func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
        print("touched!")

        return super.hitTest(point, with: event)
    }
}

你可以考虑一个单独的观察员键盘显示和隐藏通知。