build: prevent compile-time failure in application extensions
This commit is contained in:
parent
b22fd239e9
commit
094c0c40d8
|
|
@ -11,7 +11,16 @@ public extension UIViewController {
|
|||
if #available(iOS 13.0, *) {
|
||||
statusBarHeight = window?.windowScene?.statusBarManager?.statusBarFrame.height ?? 0
|
||||
} else {
|
||||
statusBarHeight = UIApplication.shared.statusBarFrame.height
|
||||
// prevent compile-time failure: 'shared' is unavailable in application extensions for iOS
|
||||
|
||||
let sharedSelector = Selector(("shared"))
|
||||
|
||||
if UIApplication.responds(to: sharedSelector),
|
||||
let sharedApplication = UIApplication.perform(sharedSelector).takeRetainedValue() as? UIApplication {
|
||||
statusBarHeight = sharedApplication.statusBarFrame.height
|
||||
} else { // application extension, statusBarFrame is not applicable
|
||||
statusBarHeight = .zero
|
||||
}
|
||||
}
|
||||
|
||||
let navigationBarHeight = navigationBar?.bounds.height ?? 0
|
||||
|
|
|
|||
Loading…
Reference in New Issue