【发布时间】:2012-12-06 10:27:22
【问题描述】:
我想在 ipad 的日期时间设置更改时收到通知。有什么办法吗?
我正在使用 NSDateFormatter 来查找 iPad/iphone 时间模式是 12 小时还是 24 小时格式。 NSDateFormatter 似乎需要很多时间(在时间分析中看到)。所以我想检查仅在更改设置时使用它。
【问题讨论】:
标签: iphone objective-c ios ipad cocoa
我想在 ipad 的日期时间设置更改时收到通知。有什么办法吗?
我正在使用 NSDateFormatter 来查找 iPad/iphone 时间模式是 12 小时还是 24 小时格式。 NSDateFormatter 似乎需要很多时间(在时间分析中看到)。所以我想检查仅在更改设置时使用它。
【问题讨论】:
标签: iphone objective-c ios ipad cocoa
您可以使用两种方式来做到这一点:
- (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 中声明
【讨论】:
为NSCurrentLocaleDidChangeNotification 添加一个观察者怎么样?根据 Apple,“只要当前区域设置信息发生更改,就重新创建任何缓存的日期和数字格式化程序对象。”
【讨论】:
您可能还想收听此通知:
NSSystemTimeZoneDidChangeNotification
【讨论】: