检测系统警报视图何时出现/将关闭

Posted

技术标签:

【中文标题】检测系统警报视图何时出现/将关闭【英文标题】:Detect when system alertView willAppear/willDismiss 【发布时间】:2014-10-29 16:30:54 【问题描述】:

我想检测系统警报视图(例如应用内购买确认警报)何时出现在屏幕上。 我正在尝试将键值观察器添加到 UIApplication,但它不起作用。

UIApplication.sharedApplication().addObserver(self, forKeyPath: "windows", options: NSKeyValueObservingOptions.allZeros, context: &myContext)

【问题讨论】:

很有可能是因为 ios 8 不再使用 UIAlertView,所以警报也不再有单独的窗口 请问您是否有任何具体原因需要了解系统警报?像这样监视系统弹出窗口是非常不规则的。 我想开始动画微调器,当警报弹出停止动画时。 看看这个:也许它可以帮助你:[***.com/questions/6607170/… [1]:***.com/questions/6607170/… 【参考方案1】:

这不是我想要的,但它对我有用。

NotificationCenter.addObserver(self, selector: "applicationWillResignActive", name: UIApplicationWillResignActiveNotification, object: nil)
NotificationCenter.addObserver(self, selector: "applicationDidBecomeActive", name: UIApplicationDidBecomeActiveNotification, object: nil)

func applicationDidBecomeActive()

    if Library.isPurchasing
    
        Application.networkActivityIndicatorVisible = true
    


func applicationWillResignActive()

    if Library.isPurchasing
    
        Application.networkActivityIndicatorVisible = false
    

【讨论】:

in swift 5 : NotificationCenter.default.addObserver(self, selector: #selector(applicationWillResignActive), name: UIApplication.willResignActiveNotification, object: nil)【参考方案2】:

查看UIAlertViewDelegate 文档。有willPresentAlertView:didPresentAlertView:alertView:willDismissWithButtonIndex:alertView:didDismissWithButtonIndex:等方法。

【讨论】:

以上是关于检测系统警报视图何时出现/将关闭的主要内容,如果未能解决你的问题,请参考以下文章

拦截对广告视图的触摸,显示警报,根据响应继续前进

在创建通知/警报时,如何知道何时将通知标记为已读

单击视图时如何隐藏警报或关闭警报

如何检测何时在 Android 中设置了新警报

显示蜂窝数据已关闭警报

如何防止键盘出现在自定义警报视图上