包含键盘的窗口是一个,它的级别高于keyWindow。因此,您在self.backgroundImage
中在keyWindow中无法覆盖键盘。
建议:
在应用进入背景时调用window.resignFirstResponder()
。
更好的方式:
将您的backgroundImage添加到键盘窗口中
if let keyboardWindow = applicationKeyboardWindow {
keyboardWindow.addSubview(self.backgroundImage)
}
var applicationKeyboardWindow: UIWindow? {
var windows = UIApplication.shared.windows.filter { win -> Bool in
let descri = String(describing: type(of: win))
return descri == "UITextEffectsWindow" || descri == "UIRemoteKeyboardWindow"
}
windows.sort(by: { $0.windowLevel > $1.windowLevel } )
return windows.first
}
,
您只需在要在resignFirstResponder()
中显示键盘的组件(例如:UITextField/UITextView
)上调用viewWillDisappear(_:)
,即
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
self.textField.endEditing(true)
}
在上面的代码中,将self.textField
替换为特定的输入元素。
本文链接:https://www.f2er.com/3161761.html