【问题标题】:Notify app when iPad date time settings changed当 iPad 日期时间设置更改时通知应用程序
【发布时间】:2012-12-06 10:27:22
【问题描述】:

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

我正在使用 NSDateFormatter 来查找 iPad/iphone 时间模式是 12 小时还是 24 小时格式。 NSDateFormatter 似乎需要很多时间(在时间分析中看到)。所以我想检查仅在更改设置时使用它。

【问题讨论】:

    标签: iphone objective-c ios ipad cocoa


    【解决方案1】:

    您可以使用两种方式来做到这一点:

    1. 在您的应用委托中实现 - (void)applicationSignificantTimeChange:(UIApplication *)application
    2. 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-14
        • 1970-01-01
        • 2012-04-28
        相关资源
        最近更新 更多