在我们正在创建的应用程序中,我们需要添加一些额外的屏幕来配置应用程序。
如果我们可以在应用程序的打开屏幕上添加额外的按钮,那就太好了,只有在 iPad 没有引导访问时才可见。
是否可以检测到设备当前正在使用引导访问运行,并对其启用或禁用做出反应?
在我们正在创建的应用程序中,我们需要添加一些额外的屏幕来配置应用程序。
如果我们可以在应用程序的打开屏幕上添加额外的按钮,那就太好了,只有在 iPad 没有引导访问时才可见。
是否可以检测到设备当前正在使用引导访问运行,并对其启用或禁用做出反应?
你想要这样的东西:
NSLog(@"Accessabilitiy enabled: %@", UIAccessibilityIsGuidedAccessEnabled() ? @"YES" : @"NO");
if (!UIAccessibilityIsGuidedAccessEnabled()) {
// show something since I'm not in guided access
}
如果你想知道它什么时候改变...
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(guidedAccessChanged) name:UIAccessibilityGuidedAccessStatusDidChangeNotification object:nil];
然后根据第一次测试检查它是打开还是关闭。
2013 年 WWDC 的深度引导访问(开始于 39:26)
检查是否启用了引导访问(iOS 6+):
UIAccessibilityIsGuidedAccessEnabled()
响应引导访问状态更改(iOS 6+):
UIAccessibilityGuidedAccessStatusDidChangeNotification
在引导访问模式(iOS 7+)下添加自定义限制:
UIGuidedAccessRestrictionDelegate
获取指定限制的限制状态(iOS 7+):
迅速:
func UIGuidedAccessRestrictionStateForIdentifier(_ restrictionIdentifier: String) -> UIGuidedAccessRestrictionState
对象-C
UIGuidedAccessRestrictionState UIGuidedAccessRestrictionStateForIdentifier(NSString *restrictionIdentifier);
斯威夫特 4.2:
if !UIAccessibility.isGuidedAccessEnabled {
// show something since I'm not in guided access
}