Hide keyboard before dismissing windows

This commit is contained in:
Shadowfacts 2021-01-06 19:16:57 -05:00
parent f0e2bb8db6
commit 74a30d27e8
1 changed files with 7 additions and 0 deletions

View File

@ -12,6 +12,13 @@ extension UIWindowSceneDelegate {
func closeWindow(animation: UIWindowScene.DismissalAnimation = .standard, errorHandler: ((Error) -> Void)? = nil) { func closeWindow(animation: UIWindowScene.DismissalAnimation = .standard, errorHandler: ((Error) -> Void)? = nil) {
guard let session = self.window??.windowScene?.session else { return } guard let session = self.window??.windowScene?.session else { return }
// Hide the keyboard before dismissing window.
// Calling resignFirstResponder() on the window does not work (always returns false).
// Using UIApplication.shared.sendAction(#selector(resignFirstResponder), to: nil, from: nil, for: nil)
// may not work as desired if the window with focus is not the one being dismissed (in which case it's okay
// if the keyboard remains visible).
window??.endEditing(true)
let options = UIWindowSceneDestructionRequestOptions() let options = UIWindowSceneDestructionRequestOptions()
options.windowDismissalAnimation = animation options.windowDismissalAnimation = animation
UIApplication.shared.requestSceneSessionDestruction(session, options: options, errorHandler: errorHandler) UIApplication.shared.requestSceneSessionDestruction(session, options: options, errorHandler: errorHandler)