我想知道状态栏何时改变高度,例如正在进行的电话通话。所以我在UIApplicationDelegate中添加了以下内容:
-(void)application:(UIApplication *)application willChangeStatusBarFrame:(CGRect)newStatusBarFrame {
NSLog(@"yup, got here");
}
实际上,当我从应用程序的任何屏幕切换模拟器上的通话中状态栏时,消息会显示在控制台中,但我想要做的是在另一个类中移动uitextfield或2 - 高度状态栏特别搞乱了一个屏幕。我在这个屏幕上自动调整没有运气。
所以我的问题是如何在AppDelegate中仅使用此方法实现一个屏幕和一个屏幕的代码?它在所有屏幕中都会闪光但我只需要一个屏幕。理想情况下,我只想在一个类中使用一种方法来解雇。
答案 0 :(得分:7)
系统还会同时发布UIApplicationWillChangeStatusBarFrameNotification
。让您的视图控制器听取此通知。根本不需要弄乱应用程序委托。
答案 1 :(得分:1)
选择Ole的答案,但为了将来的参考,你如何找到你的代表是:
MyAppDelegate *delegate = (MyAppDelegate *)[UIApplication sharedApplication].delegate;