UIApplication window 转移到 SceneDelegate

有关 SceneDelegate 详细介绍请参考 :https://www.jianshu.com/p/10df52dde8e5
此文章参考 OC 版本已经找不到了, 我这里提供 Swift 版本以及解释。
关于 iOS 13 之后 UIApplication window 转移到SceneDelegate的问题,写了一个小扩展供大家使用。

注意如果App中有多window的谨慎使用(比如app中小浮动窗口类似微信文章小浮动窗口以及音视频通话时小电话浮动窗口)。

代码如下:


import Foundation

extension UIApplication {

    class func getWindow() ->UIWindow? {

        for scene in self.shared.connectedScenes {

            if scene.activationState == .foregroundActive {

                return (scene as? UIWindowScene)?.windows.first

            }

        }

        return nil

    }

}

你可能感兴趣的:(UIApplication window 转移到 SceneDelegate)