Ios13 xcode11ベータ版でプロジェクトを実行すると、.
[UIApplication sharedApplication].statusBarFrame.size.height
コードは0を返します。
それをios13に適応させるにはどうすればよいですか?
SceneDelegate.Swiftファイル
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let windowScene = (scene as? UIWindowScene) else { return }
if let statusBarFrame = windowScene.statusBarManager?.statusBarFrame {
print(statusBarFrame)
}
}
PeterがTamarous'sの回答に記載されているように、keyWindowプロパティは非推奨ですが、単一のウィンドウを使用しているという前提で、代わりに使用できます。
CGSize statusBarSize = [UIApplication sharedApplication].windows.firstObject.windowScene.statusBarManager.statusBarFrame.size
nthウィンドウにアクセスする必要がある場合は、同様の方法でアクセスできます。
NSInteger i = 0;
CGSize statusBarSize = [UIApplication sharedApplication].windows[i].windowScene.statusBarManager.statusBarFrame.size;