UIApplication.shared.keyWindow?.addSubview(self.backgroundImage)
我会试试这个:
let windowCount = UIApplication.shared.windows.count
UIApplication.shared.windows[windowCount-1].addSubview(self.backgroundImage)
无
我用键盘打字,然后按主页按钮。当我返回应用程序时,我只需要显示背景图像,但应用程序在后台显示键盘图像
包含键盘的窗口是单个的,它的级别高于keyWindow。所以你的键盘窗口中的self.backgroundImage
无法覆盖键盘。
建议:
当应用程序进入后台时,调用window.resignFirstResponder()
更好的方式:
如果您的背景图像显示,请将其添加到键盘窗口
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
}
您可以简单地在viewWillDisappear(_:)
中显示键盘的组件(例如:UITextField/UITextView
(上调用resignFirstResponder()
,即
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
self.textField.endEditing(true)
}
在上面的代码中,将self.textField
替换为特定的输入元素。