iPad日期时间设置更改时通知应用程序

时间:2012-12-06 10:27:22

标签: iphone objective-c ios ipad cocoa

我希望在更改ipad的日期时间设置时收到通知。那有什么办法吗?

我正在使用NSDateFormatter来查找iPad / iphone时间模式是12或24小时格式。 NSDateFormatter似乎需要花费大量时间(见时间分析)。所以我想检查只在更改设置时使用它。

3 个答案:

答案 0 :(得分:13)

您可以通过两种方式实现:

  1. 在您的应用代表中实施- (void)applicationSignificantTimeChange:(UIApplication *)application
  2. UIApplicationSignificantTimeChangeNotification

    添加观察者

    <强> [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(timeChanged:) name:UIApplicationSignificantTimeChangeNotification object:nil];

  3.   

    <强> applicationSignificantTimeChange:

         

    告知代表当时间发生重大变化。   - (void)applicationSignificantTimeChange:(UIApplication *)application

         

    <强> 参数

         

    <强>应用

    The delegating application object.
    
         

    讨论

         

    重要时间变化的例子包括午夜到来,   承运人更新时间,以及夏令时的变化   时间。委托可以实现此方法来调整任何对象   显示时间或对时间变化敏感的应用程序。

         

    在调用此方法之前,应用程序还会发布一个   UIApplicationSignificantTimeChangeNotification通知给出   有兴趣的对象有机会对变化做出回应。

         

    如果您的应用程序当前已暂停,则此邮件将排队   直到你的应用程序返回到前台,此时它就是   交付。如果发生多个时间变化,则只有最近的变化   交付。可用性

    Available in iOS 2.0 and later.
    
         

    在UIApplication.h中声明

    有关详情UIApplicationDelegate_Protocol

答案 1 :(得分:7)

如何为NSCurrentLocaleDidChangeNotification添加观察者? Per Apple,“每当当前的语言环境信息发生变化时,重新创建任何缓存的日期和数字格式化程序对象。”

答案 2 :(得分:0)

您可能还想收听此通知: NSSystemTimeZoneDidChangeNotification