Files
featherVoice/TUIKit/TUICallKit/TUICallKit-Swift/View/Component/Common/UIWindowCommon.swift
2025-08-08 10:49:36 +08:00

40 lines
1.3 KiB
Swift

import UIKit
extension UIWindow {
public func t_makeKeyAndVisible() {
if #available(iOS 13.0, *) {
for windowScene in UIApplication.shared.connectedScenes {
if windowScene.activationState == UIScene.ActivationState.foregroundActive ||
windowScene.activationState == UIScene.ActivationState.background {
self.windowScene = windowScene as? UIWindowScene
break
}
}
}
self.makeKeyAndVisible()
}
static func getKeyWindow() -> UIWindow? {
var keyWindow: UIWindow?
if #available(iOS 13, *) {
keyWindow = UIApplication.shared.connectedScenes
.filter({ $0.activationState == .foregroundActive })
.compactMap { $0 as? UIWindowScene }
.flatMap { $0.windows }
.first(where: { $0.isKeyWindow })
} else {
keyWindow = UIApplication.shared.keyWindow
}
return keyWindow
}
static func getTopFullscreenWindow() -> UIWindow? {
let topWindow = UIApplication.shared.windows
.filter { !$0.isHidden && $0.bounds.equalTo(UIScreen.main.bounds) }
.max(by: { $0.windowLevel.rawValue < $1.windowLevel.rawValue })
return topWindow
}
}