2012-09-30 46 views
15

在我們創建的應用程序中,我們需要添加一些額外的屏幕來配置應用程序。檢測或響應指導訪問?

如果我們可以在應用程序的開始屏幕上添加額外的按鈕,那只有在iPad未處於引導訪問狀態時纔可見,那將會很不錯。

是否有可能檢測到設備當前正在以引導訪問運行,並對其啓用或禁用進行響應?

回答

28

你想是這樣的:

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

然後檢查,看它是否是開啓或關閉按第一次測試。

+0

我有特里這和它總是返回假......任何想法? – Tom

+3

只有當您激活引導式訪問時,即用戶三次點擊主頁按鈕並啓動時,才能使用此功能 - 並非在輔助功能設置中設置時。 – TerryB

2

Guided Access in depth at WWDC 2013(在39:26開始)


Check if Guided Access is Enabled(iOS的6+):

UIAccessibilityIsGuidedAccessEnabled() 

Respond to Guided Access status changes(iOS的6+):

UIAccessibilityGuidedAccessStatusDidChangeNotification 

Add custom restrictions while in Guided Access mode(iOS的7+):

UIGuidedAccessRestrictionDelegate 

Getting the restriction state for specified restriction(iOS的7+):

夫特:

func UIGuidedAccessRestrictionStateForIdentifier(_ restrictionIdentifier: String) -> UIGuidedAccessRestrictionState 

的OBJ-C

UIGuidedAccessRestrictionState UIGuidedAccessRestrictionStateForIdentifier(NSString *restrictionIdentifier);