2010-03-09 79 views
2

我一直在试图听取状态栏高度的变化 - 例如当通话状态栏显示或隐藏,或者与网络共享状态栏相同时 - 通过侦听发送的UIApplicationWillChangeStatusBarFrameNotification通知。状态栏更改高度时,为什么不发送UIApplicationWillChangeStatusBarFrameNotification?

这里相当简单的代码...

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(statusBarWillChangeFrame:) 
              name:UIApplicationWillChangeStatusBarFrameNotification 
              object:nil]; 

但该通知似乎从来没有在这种情况下被发送,无论是在模拟器上使用“切换呼叫内状态栏”选项或设备上当通话结束时应用程序打开。另外,不调用类似的UIApplicationDelegate方法。

根据该文件,

UIApplicationWillChangeStatusBarFrameNotification

当应用程序即将 更改状态栏的框架发布。

用户信息字典包含一个封装 的CGRect结构表达的新状态 杆架的 位置和大小的 NSValue对象。使用 UIApplicationStatusBarFrameUserInfoKey 来访问此值。

任何人都可以解释为什么这个通知没有被发送来响应显示或隐藏的通话状态栏吗?根据文件,它应该是。

+0

您是否更感兴趣找出为什么通知未被发送到来电或更有兴趣获得通知存在来电? – Anthony 2010-03-09 02:23:00

+0

我根本不感兴趣来电,再次阅读问题。我只想知道状态栏的框架何时更改。发生这种情况有两种主要情况 - 当通话状态栏出现或消失,或者当网络共享状态栏执行相同操作时。 – 2010-03-09 02:41:24

+0

我一直看到通话中来电。抱歉。什么是通话?我无法找到这个词,因此我的困惑。 – Anthony 2010-03-09 02:52:31

回答