23 lines
743 B
Swift
23 lines
743 B
Swift
//
|
|
// https://mczachurski.dev
|
|
// Copyright © 2023 Marcin Czachurski and the repository contributors.
|
|
// Licensed under the Apache License 2.0.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
extension UIApplication {
|
|
var keyWindow: UIWindow? {
|
|
// Get connected scenes
|
|
return UIApplication.shared.connectedScenes
|
|
// Keep only active scenes, onscreen and visible to the user
|
|
.filter { $0.activationState == .foregroundActive }
|
|
// Keep only the first `UIWindowScene`
|
|
.first(where: { $0 is UIWindowScene })
|
|
// Get its associated windows
|
|
.flatMap({ $0 as? UIWindowScene })?.windows
|
|
// Finally, keep only the key window
|
|
.first(where: \.isKeyWindow)
|
|
}
|
|
}
|