SwiftUI:如何在 Objective-C 中获取 window
SwiftUI: How to get window in Objective-C
let scene = UIApplication.shared.connectedScenes.first
if let sd: SceneDelegate = (scene?.delegate as? SceneDelegate) {
let window = sd.window
}
这是在Swift,我想把它转换成Objective-C。我试过这个:
UIScene *scene = [[[[UIApplication sharedApplication]connectedScenes]allObjects]firstObject];
但是现在没有SceneDelegate
;在 Objective-C 中有 UIKit 的 UIWindowSceneDelegate
.
我也无法访问 UIScenedelegate。 Scenedelegate 在 Swift 中,我正在尝试在 objective-c 中获取 window
但现在我无法在 swiftUI 中访问 window。
检查 scene.delegate
以确保它符合协议,然后将协议强制转换到它上面,以便编译器允许您使用协议属性 and/or 方法。
UIScene *scene = [[[[UIApplication sharedApplication] connectedScenes] allObjects] firstObject];
if([scene.delegate conformsToProtocol:@protocol(UIWindowSceneDelegate)]){
UIWindow *window = [(id <UIWindowSceneDelegate>)scene.delegate window];
}
let scene = UIApplication.shared.connectedScenes.first
if let sd: SceneDelegate = (scene?.delegate as? SceneDelegate) {
let window = sd.window
}
这是在Swift,我想把它转换成Objective-C。我试过这个:
UIScene *scene = [[[[UIApplication sharedApplication]connectedScenes]allObjects]firstObject];
但是现在没有SceneDelegate
;在 Objective-C 中有 UIKit 的 UIWindowSceneDelegate
.
我也无法访问 UIScenedelegate。 Scenedelegate 在 Swift 中,我正在尝试在 objective-c 中获取 window 但现在我无法在 swiftUI 中访问 window。
检查 scene.delegate
以确保它符合协议,然后将协议强制转换到它上面,以便编译器允许您使用协议属性 and/or 方法。
UIScene *scene = [[[[UIApplication sharedApplication] connectedScenes] allObjects] firstObject];
if([scene.delegate conformsToProtocol:@protocol(UIWindowSceneDelegate)]){
UIWindow *window = [(id <UIWindowSceneDelegate>)scene.delegate window];
}