28 lines
1.1 KiB
Swift
28 lines
1.1 KiB
Swift
//
|
|
// UIWindowSceneDelegate+Close.swift
|
|
// Tusker
|
|
//
|
|
// Created by Shadowfacts on 12/12/20.
|
|
// Copyright © 2020 Shadowfacts. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
extension UIWindowSceneDelegate {
|
|
|
|
func closeWindow(animation: UIWindowScene.DismissalAnimation = .standard, errorHandler: ((Error) -> Void)? = nil) {
|
|
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()
|
|
options.windowDismissalAnimation = animation
|
|
UIApplication.shared.requestSceneSessionDestruction(session, options: options, errorHandler: errorHandler)
|
|
}
|
|
|
|
}
|