我希望在更改ipad的日期时间设置时收到通知。那有什么办法吗?
我正在使用NSDateFormatter来查找iPad / iphone时间模式是12或24小时格式。 NSDateFormatter似乎需要花费大量时间(见时间分析)。所以我想检查只在更改设置时使用它。
答案 0 :(得分:13)
您可以通过两种方式实现:
- (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中声明
答案 1 :(得分:7)
如何为NSCurrentLocaleDidChangeNotification添加观察者? Per Apple,“每当当前的语言环境信息发生变化时,重新创建任何缓存的日期和数字格式化程序对象。”
答案 2 :(得分:0)
您可能还想收听此通知:
NSSystemTimeZoneDidChangeNotification