2012-09-30 15 views
15

W aplikacji, którą tworzymy, musimy dodać dodatkowe ekrany, aby skonfigurować aplikację.Wykrywanie lub reagowanie na dostęp z przewodnikiem?

Byłoby miło, gdybyśmy mogli dodać dodatkowe przyciski na ekranie początkowym aplikacji, która jest widoczna tylko wtedy, gdy iPad nie ma dostępu z przewodnikiem.

Czy można wykryć, że urządzenie jest obecnie uruchomione z dostępem z przewodnikiem i czy reaguje na to, czy jest włączone czy wyłączone?

Odpowiedz

28

Chcesz coś takiego:

NSLog(@"Accessabilitiy enabled: %@", UIAccessibilityIsGuidedAccessEnabled() ? @"YES" : @"NO"); 

if (!UIAccessibilityIsGuidedAccessEnabled()) { 
    // show something since I'm not in guided access 
} 

Jeśli chcesz wiedzieć, kiedy zmienia ...

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(guidedAccessChanged) name:UIAccessibilityGuidedAccessStatusDidChangeNotification object:nil]; 

następnie sprawdzić, czy jest włączony czy nie, jak na pierwszy test .

+0

I mieć trie d to i zawsze powracające fałszywe ... jakiekolwiek pomysły? – Tom

+3

Działa to tylko po aktywowaniu dostępu z przewodnikiem, tj. Gdy użytkownik potroi przycisk home i uruchomi go - Nie, gdy jest skonfigurowany w ustawieniach dostępności. – TerryB

2

Guided Access in depth at WWDC 2013 (rozpoczyna się 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+)

Swift:

func UIGuidedAccessRestrictionStateForIdentifier(_ restrictionIdentifier: String) -> UIGuidedAccessRestrictionState 

obj-C

UIGuidedAccessRestrictionState UIGuidedAccessRestrictionStateForIdentifier(NSString *restrictionIdentifier); 
Powiązane problemy