代码之家  ›  专栏  ›  技术社区  ›  Bryan Henry

当状态栏更改高度时,为什么不发送uiapplicationwillchangestatusbarframenotification?

  •  2
  • Bryan Henry  · 技术社区  · 15 年前

    我一直在尝试通过监听要发送的uiapplicationWillChangeStatusBarFrameNotification通知来监听状态栏高度的变化,例如显示或隐藏呼叫状态栏时,或与Internet限制状态栏相同。

    这里的代码相当简单…

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

    但在这种情况下,无论是在模拟器上使用“在调用状态栏中切换”选项,还是在应用程序打开时调用结束时在设备上,通知似乎从未发送过。此外,不调用类似的uiApplicationDelegate方法。

    根据文件,

    ui应用程序将更改状态栏框通知

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

    用户信息字典包含 封装一个 cDirect结构表示 新状态的位置和大小 杆架。使用 uiapplicationstatusbarframeuserinfokey(应用程序状态栏用户信息键) 访问此值。

    有人能解释为什么在显示或隐藏呼叫状态栏时不发送此通知吗?根据文件,应该是。

    1 回复  |  直到 15 年前
        1
  •  3
  •   Bryan Henry    15 年前

    似乎这是一个活跃的SDK bug。为此付出了很多。

    http://openradar.appspot.com/6475681 http://openradar.appspot.com/7080782 .