即使在激活引导模式后,Swift UIAccessibilityIsGuidedAccessEnabled 也会返回 false

标签 swift guided-access

我遇到了一个奇怪的错误,即使在设置中启用了引导访问后,UIAccessibilityIsGuidedAccessEnabled 也开始返回 false,我通过三次点击主页按钮并成功看到引导访问已启用消息来激活它。

这里有一个示例代码来展示我在做什么。

override func viewDidLoad() {
    super.viewDidLoad()
    NotificationCenter.default.addObserver(self, selector: #selector(guidedAccessStatusChanged(notification:)), name: NSNotification.Name.UIAccessibilityGuidedAccessStatusDidChange, object: nil)
}

@objc func guidedAccessStatusChanged(notification: NSNotification) {

    if UIAccessibilityIsGuidedAccessEnabled() {
        print("Guided access is enabled")
    }  else {
        // The program randomly started just displaying this even after guided access is enabled.
        print("Guided access is disabled")
    }
}

起初我认为这可能是时间问题,甚至尝试延迟我的引导访问状态检查,但也没有用。

最佳答案

您还可以定义一个直接提供相关代码块的观察者:

_ = NotificationCenter.default.addObserver(forName: NSNotification.Name.UIAccessibilityGuidedAccessStatusDidChange, object: nil, queue: OperationQueue.main, using: { _ in
    if UIAccessibilityIsGuidedAccessEnabled() {
        print("Guided access is enabled")
    }  else {
        // The program randomly started just displaying this even after guided access is enabled.
        print("Guided access is disabled")
    }
})

但是。必须注意的是,一旦用户进入“引导访问设置屏幕”,引导模式将被设置为 disabled,您可以在其中定义是否允许触摸、特定时间范围限制等。在您再次触摸主页按钮 3 次并输入用于退出引导模式的 PIN 码后,将显示此 View 。

虽然引导模式在这个模式下没有完全禁用,但也没有启用。也许这就是为什么它被“随机”设置为禁用的原因?

如果没有,也许您还可以进一步澄清,当这些随机事件出现时,用户/应用程序端正在做什么。

关于即使在激活引导模式后,Swift UIAccessibilityIsGuidedAccessEnabled 也会返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51470234/

相关文章:

swift - RXSwift 闭包中的“[weak self]”

ios - 可以在引导访问模式下运行时自动更新企业应用程序吗?

iphone - 通过引导访问锁定的 iOS 应用程序中的自动 OTA 更新

iphone - 尝试从 iOS 6 应用程序中启动引导式访问?

ios - Swift 中的 super 初始化

ios - 滚动页面时如何隐藏和显示 View

swift - 从自动释放池返回对象的正确方法

swift - 框架中的 pod,在 swift 中为主项目导入该框架