当应用程序在后台时,如何在键盘前显示keyWindow


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替换为特定的输入元素。

相关内容

  • 没有找到相关文章

最新更新