1

我想知道状态栏何时因通话而改变高度。所以我将以下内容放在我的 UIApplicationDelegate 中:

-(void)application:(UIApplication *)application willChangeStatusBarFrame:(CGRect)newStatusBarFrame {
    NSLog(@"yup, got here");
}

实际上,当我从应用程序中的任何屏幕切换模拟器上的通话状态栏时,消息会出现在控制台中,但我想要做的是将 uitextfield 或 2 移动到另一个类中,因为双高度状态栏尤其弄乱了一个屏幕。我在这个屏幕上自动调整大小没有运气。

所以我的问题是如何在 AppDelegate 中仅通过此方法实现一个屏幕和一个屏幕的代码?它会在所有屏幕上触发,但我只需要它在一个屏幕上。理想情况下,我想要一种仅在一个类中触发的方法。

4

2 回答 2

7

系统也会同时发布一个UIApplicationWillChangeStatusBarFrameNotification。让您的视图控制器收听此通知。根本不需要弄乱应用程序委托。

于 2010-08-06T19:57:11.843 回答
1

选择 Ole 的答案,但为了将来参考,您如何联系您的代表是:

MyAppDelegate *delegate = (MyAppDelegate *)[UIApplication sharedApplication].delegate;
于 2010-08-06T20:26:38.937 回答