Benutzerdefinierte VoiceOver-Aktionen in UITableViewCell

8

Wenn ein UITableView editierbar ist, kann der Benutzer mit UITableViewCells benutzerdefinierte Aktionen ausführen, wenn VoiceOver aktiviert ist. Der Benutzer kann die verfügbaren Aktionen hören, indem er nach oben oder unten wischt, während sich der VoiceOver-Cursor in der Zelle befindet, und anschließend die Aktionen durch Doppelklicken auf eine beliebige Stelle auf dem Bildschirm aufrufen. In meinen Zellen sind nur zwei Aktionen verfügbar: Löschen (ruft die übliche Zelllöschung auf) und Standard (ruft ein Tippen auf die Zelle auf). Meine Frage ist zweifach:

Gibt es eine Möglichkeit, benutzerdefinierte VoiceOver-Aktionen zu einer Zelle hinzuzufügen?

Standardmäßig wird die Löschen -Aktion auch dann als "Löschen" ausgegeben, wenn der Delegat für die Tabellenansicht einen benutzerdefinierten Titel in der Methode tableView:titleForDeleteConfirmationButtonForRowAtIndexPath: zurückgibt. Wie kann ich VoiceOver einen benutzerdefinierten Action-Titel auslesen?

    
Alexey Blinov 01.05.2013, 10:05
quelle

2 Antworten

10

Es gibt einfach keine API für die Bereitstellung von benutzerdefinierten Elementaktionen für VoiceOver. Das Protokoll UIAccessibility* bietet dafür alles Mögliche. Ich denke, Sie sollten ein Radar einreichen, wenn Sie benutzerdefinierte Aktionen hinzufügen müssen und hoffen, dass Apple es in einer zukünftigen Version von iOS implementieren wird (oder dass es in iOS 7 in einem Monat erscheint).

UPDATE : Ab iOS 8 können Sie das accessibilityCustomActions Eigenschaft, um ein Array Ihrer UIAccessibilityCustomAction -Objekte (Beachten Sie, dass VoiceOver weiterhin die Standardaktion "Element aktivieren" auf seiner Benutzeroberfläche zusätzlich zu den von Ihnen bereitgestellten Elementen hinzufügt.):

%Vor%

Wie bei Swift und Selektoren üblich, vergessen Sie nicht, @objc Attribut für die Zielmethode der benutzerdefinierten Aktion in Swift, wenn Sie keine Unterklasse NSObject erstellen / die Methode ist privat, andernfalls eingeschaltet Wenn Sie versuchen, die Aktion mit VoiceOver zu aktivieren, wird nichts mehr ausgeführt und der "End of Bounds" -Ton wird wiedergegeben (zumindest unter iOS 8.2 und 8.3, wo ich mit Zielobjekt getestet habe, das die Unterklasse NSObject erstellt hat).

In Bezug auf Ihre zweite Frage - fühlt sich an wie ein Bug, für den Sie erneut ein Radar einreichen können: -)

    
Boris Dušek 01.05.2013, 12:06
quelle
3

iOS 8 hat Unterstützung für benutzerdefinierte Aktionen hinzugefügt. Von UIAccessibility.h :

%Vor%     
jszumski 24.11.2014 15:58
quelle

Tags und Links