iOS 13之前获取KeyWindow直接使用[UIApplication sharedApplication].keyWindow。iOS 13这个属性被废弃了。
@property(nullable, nonatomic,readonly) UIWindow *keyWindow
API_DEPRECATED("Should not be used for applications that support multiple scenes as it returns a key window across all connected scenes", ios(2.0, 13.0));
iOS 获取keyWindow代码:
- (UIWindow *)getKeyWindow
{
if (@available(iOS 13.0, *))
{
for (UIWindowScene* windowScene in [UIApplication sharedApplication].connectedScenes) {
if (windowScene.activationState == UISceneActivationStateForegroundActive)
{
for (UIWindow *window in windowScene.windows)
{
if (window.isKeyWindow)
{
return window;
}
}
}
}
}
else
{
return [UIApplication sharedApplication].keyWindow;
}
return nil;
}