【问题标题】:How can I detect if the notification center was opened如何检测通知中心是否已打开
【发布时间】:2018-02-12 10:32:20
【问题描述】:

在一个 cocos2dx 项目中,在 iOS 10 设备上,当通知中心向下滑动然后向上滑动时,会发生巨大的帧率下降。结果,当动画恢复时,其运动取决于 delta t 的 ui 元素被移动到无效位置。在我看来,操作系统正在将应用程序置于某种后台模式,但未调用 applicationDidEnterBackground。 通知中心向下/向上滑动时有没有办法接收事件?

【问题讨论】:

    标签: ios cocoa cocos2d-x ios10 cocos2d-x-3.0


    【解决方案1】:

    使用

    applicationWillResignActive(_:)
    

    当你的应用离开前台时,上面的委托被调用。这是当您的应用程序暂时失去焦点(例如接听电话等)时被调用的同一个委托。

    你可以使用

    applicationWillEnterForeground(_:)
    

    确定您的应用何时重新获得焦点。

    阅读:https://developer.apple.com/documentation/uikit/uiapplicationdelegate

    由于这些委托是在应用程序的 UIApplicationDelegate 上调用的,这通常是您的 appDelegate 文件,并且大多数时候您希望在单个 ViewControllers 中而不是在 AppDelegate 中获得这些事件的通知,您始终可以使用 NotificationCenter 并添加观察者对于UIApplicationWillResignActiveNotification

    阅读:How to access UIViewController's varaibles inside "func applicationWillResignActive"? Swift, iOS xcode

    【讨论】:

    • 感谢您的回答。所以applicationWillResignActive在iOS10上通知中心向下滑动时肯定会调用?
    • @vahagn :逻辑上是的,我认为 iOS 10 中没有任何特别的变化。我已经使用这些来处理设备接收语音呼叫的情况。所以也应该使用这个
    • @vahagn :阅读此stackoverflow.com/questions/9060066/… 这清楚地提到了 applicationWillResignActive 在通知中心下拉时被调用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多