当 iPad 日期时间设置更改时通知应用程序
Posted
技术标签:
【中文标题】当 iPad 日期时间设置更改时通知应用程序【英文标题】:Notify app when iPad date time settings changed 【发布时间】:2012-12-06 10:27:22 【问题描述】:我想在 ipad 的日期时间设置更改时收到通知。有什么办法吗?
我正在使用 NSDateFormatter 来查找 iPad/iphone 时间模式是 12 小时还是 24 小时格式。 NSDateFormatter 似乎需要很多时间(在时间分析中看到)。所以我想检查仅在更改设置时使用它。
【问题讨论】:
【参考方案1】:您可以使用两种方式来做到这一点:
-
在您的应用委托中实现
- (void)applicationSignificantTimeChange:(UIApplication *)application
。
为UIApplicationSignificantTimeChangeNotification
添加观察者
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(timeChanged:) name:UIApplicationSignificantTimeChangeNotification object:nil];
applicationSignificantTimeChange:
当时间发生重大变化时通知代表。
- (void)applicationSignificantTimeChange:(UIApplication *)application
参数
应用程序
The delegating application object.
讨论
重大时间变化的示例包括午夜的到来, 运营商的时间更新,以及夏令时的更改 时间。委托可以实现这个方法来调整任何对象 显示时间或对时间变化敏感的应用程序。
在调用此方法之前,应用程序还会发布一个 UIApplicationSignificantTimeChangeNotification 通知给 感兴趣的对象有机会响应变化。
如果您的应用程序当前处于挂起状态,则此消息将排队 直到您的应用程序返回到前台,此时它是 发表。如果发生多次时间变化,只有最近的一次是 发表。可用性
Available in ios 2.0 and later.
在 UIApplication.h 中声明
更多请查看UIApplicationDelegate_Protocol
【讨论】:
接受详细回答。谢谢!!。【参考方案2】:为NSCurrentLocaleDidChangeNotification 添加一个观察者怎么样?根据 Apple,“只要当前区域设置信息发生更改,就重新创建任何缓存的日期和数字格式化程序对象。”
【讨论】:
【参考方案3】:您可能还想收听此通知:
NSSystemTimeZoneDidChangeNotification
【讨论】:
以上是关于当 iPad 日期时间设置更改时通知应用程序的主要内容,如果未能解决你的问题,请参考以下文章