18

在我们正在创建的应用程序中,我们需要添加一些额外的屏幕来配置应用程序。

如果我们可以在应用程序的打开屏幕上添加额外的按钮,那就太好了,只有在 iPad 没有引导访问时才可见。

是否可以检测到设备当前正在使用引导访问运行,并对其启用或禁用做出反应?

4

3 回答 3

33

你想要这样的东西:

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];

然后根据第一次测试检查它是打开还是关闭。

于 2012-11-26T23:46:14.773 回答
4

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);
于 2017-02-08T21:31:16.343 回答
2

斯威夫特 4.2:

if !UIAccessibility.isGuidedAccessEnabled {
  // show something since I'm not in guided access
}
于 2018-10-27T12:55:00.803 回答