2016-04-28 4 views
4

Ich habe eine Schaltfläche und wenn ich auf die Schaltfläche tippen, wird es eine Warnung geben.iOS Accessibility, wie man den Fokus zurück zum letzten Element nach dem Ablehnen der Warnung

Wenn ich VoiceOver eingeschaltet habe und auf die Schaltfläche tippen und dann auf die Schaltfläche OK tippen, um die Warnung zu verwerfen, wird der Fokus zurück zum Anfang der Seite/Zurück-Schaltfläche anstatt der Schaltfläche zum Auslösen der Warnung gehen.

ich dieses Stück Code bin mit dem Fokus wieder auf die Schaltfläche bewegen:

let dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(0 * Double(NSEC_PER_SEC))) 

dispatch_after(dispatchTime, dispatch_get_main_queue(), { 
    UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, button) 
}) 

Das Problem ist, nachdem Sie die Warnung schließen, wird der Fokus nach oben zurück und lesen Sie das Etikett zuerst , dann gehe zurück zum Knopf. Der Fokus liegt nicht direkt auf dem Button, was ziemlich lahm aussieht.

Ich habe einige Apple-App überprüft, und ich finde, dass nach der Warnung der Fokus auf das vorherige Element zurückgehen wird, bevor die Warnung erscheint. Irgendeine Idee, wie man das erreicht? Vielen Dank!

Antwort

0

ich dieses Problem hatte früher heute - die Art, wie ich es durch die Veröffentlichung eines UIAccessibilityScreenChangedNotification anstelle einem UIAccessibilityLayoutChangedNotification gelöst ist:

UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, button)

Layout-Änderungen für eine Änderung im aktuellen Kontext in Layouts sind deiner Ansicht nach. Bildschirmänderungen werden verwendet, wenn der Benutzer eine Änderung im Kontext erfährt, d. H. Eine Warnung verwerfen und zum Präsentationsansicht-Controller zurückkehren.

Sie können den dispatch_after Block auch loswerden - mit der Bildschirm geändert Benachrichtigung erhalten Sie stattdessen die gleiche Funktionalität, die Sie von einer von Apples Apps beschreiben.

Here ist ein Link zu einer Antwort, die den Unterschied zwischen UIAccessibilityLayoutChangedNotification und UIAccessibilityScreenChangedNotification erklärt.

Verwandte Themen