我在SwiftUI 2.0中有项目,但当我更新到SwiftUI 3.0时,它会抛出错误windows作为Windows'在iOS 15.0中已弃用:在UIWindowScene.windows相关窗口场景中使用www.example.com知道吗?
.padding(.top, UIApplication.shared.windows.first?.safeAreaInsets.top)
0mkxixxg1#
好吧,警告信息相当充分地反映了问题的本质。苹果真的不推荐使用UIApplication.shared.windows,所以要修复你的警告,你应该使用UIApplication.shared.windows.first?:
UIApplication.shared.windows
UIApplication.shared.windows.first?
UIApplication .shared .connectedScenes .flatMap { ($0 as? UIWindowScene)?.windows ?? [] } .first { $0.isKeyWindow }
然后,您的.padding视图修改器将如下所示:
.padding
.padding(.top, UIApplication .shared .connectedScenes .flatMap { ($0 as? UIWindowScene)?.windows ?? [] } .first { $0.isKeyWindow }?.safeAreaInsets.top)
n3h0vuf22#
我是从一个苹果答案里看到这段代码的如果您有一个视图,那么访问场景关键窗口的最简单方法是调用
view.window.windowScene?.keyWindow
https://developer.apple.com/forums/thread/682621
2条答案
按热度按时间0mkxixxg1#
好吧,警告信息相当充分地反映了问题的本质。
苹果真的不推荐使用
UIApplication.shared.windows
,所以要修复你的警告,你应该使用UIApplication.shared.windows.first?
:然后,您的
.padding
视图修改器将如下所示:n3h0vuf22#
我是从一个苹果答案里看到这段代码的
如果您有一个视图,那么访问场景关键窗口的最简单方法是调用
https://developer.apple.com/forums/thread/682621