J'essaie d'ajouter des fonctionnalités d'accessibilité à une application iOS qui a déjà été développée.
Il y a quelques fonctionnalités d'interface utilisateur (par exemple des boutons) que j'aime qu'elles apparaissent si l'option VoiceOver dans le menu d'accessibilité des paramètres de l'iPhone est activée et ne s'affichent pas si la voix off est désactivée.
Existe-t-il un moyen de vérifier si l'option de voix off est activée ou non?
BOOL UIAccessibilityIsVoiceOverRunning();
Dans ViewDIdLoad
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(voiceOverStatusChanged)
name:UIAccessibilityVoiceOverStatusChanged
object:nil];
- (void)voiceOverStatusChanged
{
if(!UIAccessibilityIsVoiceOverRunning())
{
//do your changes
}
}
Pour Swift 4.2, vous pouvez vérifier le booléen suivant fourni par UIKit:
UIAccessibility.isVoiceOverRunning
En complément de toutes les bonnes réponses précédentes, depuis iOS11, le nouveau nom de notification à utiliser est:
UIAccessibilityVoiceOverStatusDidChange
(Swift <4.2).UIAccessibilityVoiceOverStatusDidChangeNotification
(ObjC).... tandis que UIAccessibilityVoiceOverStatusChanged
est obsolète.
MODIFIER pour Swift 4.2 ==> UIAccessibility.voiceOverStatusDidChangeNotification