Окно, содержащее клавиатуру, является единичным, и его уровень выше, чем у keyWindow. Таким образом, ваше self.backgroundImage
, которое в keyWindow не может закрывать клавиатуру.
Предлагать:
вызывать 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
}