Peringatan: Ini tidak berfungsi lagi dengan iOS 13 dan Xcode 11.
================================================== ======================
Saya harus mencoba mencari cara lain. Yang tidak melibatkan addSubview
jendela. Karena saya memindahkan jendela saat keyboard disajikan.
Objective-C
- (void)setStatusBarBackgroundColor:(UIColor *)color {
UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
statusBar.backgroundColor = color;
}
}
Cepat
func setStatusBarBackgroundColor(color: UIColor) {
guard let statusBar = UIApplication.sharedApplication().valueForKey("statusBarWindow")?.valueForKey("statusBar") as? UIView else {
return
}
statusBar.backgroundColor = color
}
Cepat 3
func setStatusBarBackgroundColor(color: UIColor) {
guard let statusBar = UIApplication.shared.value(forKeyPath: "statusBarWindow.statusBar") as? UIView else { return }
statusBar.backgroundColor = color
}
Memanggil formulir ini application:didFinishLaunchingWithOptions
berhasil untuk saya.
NB Kami memiliki aplikasi di app store dengan logika ini. Jadi saya rasa tidak masalah dengan kebijakan toko aplikasi.
Edit:
Gunakan dengan resiko Anda sendiri. Bentuk komentator @Sebyddd
Saya punya satu aplikasi yang ditolak karena ini, sementara yang lain diterima dengan baik. Mereka menganggapnya sebagai penggunaan API pribadi, jadi Anda beruntung selama proses peninjauan :) - Sebyddd