Es gibt ein Verfahren auf NSObject
über eine extension
(von UIAccessibility.h
), die auf XCUIElement
verfügbar ist accessibilityElementIsFocused()
genannt, aber es scheint nicht true
selbst zurückzukehren, wenn die debugDescription
dieses Element eindeutig Focused
sagt. Es gibt ein paar andere verwandte Methoden accessibilityElementDidLoseFocus()
und accessibilityElementDidBecomeFocused()
, die anscheinend Methoden sind, die von einer Unterklasse von NSObject
überschrieben werden sollen, um über Änderungen des Focused
-Status benachrichtigt zu werden.
Nach diesem Graben bin ich geneigt zu sagen, dass der Begriff Focused
, den wir diskutieren, ist nicht das gleiche wie der firstResponder
Zustand, der wahrscheinlich ist, was Sie hoffen zu wissen. Ich glaube an diesem Punkt, dass Fokus darauf hinweist, dass das Element der Fokus einiger assistiver Technologien wie VoiceOver
ist, basierend auf einigen der Kommentare für diese Methoden.
Wenn Sie in der Lage sein zu sagen, ob ein Element firstResponder
direkt ist, denke ich, an dieser Stelle ist es Zeit, einen Fehlerbericht zu archivieren.
Wenn es eine Möglichkeit, direkt mit der Software-Tastatur zu interagieren, eine Hacky Abhilfe könnte sein, eine XCUIElement
für Ihre UITextField
zu erhalten und die value
Ihres UITextField
Element zu vergleichen, bevor und nachdem er mit der Tastatur eingeben (Sie geben können möchten ein Zeichen dann eine Rücktaste). Nachdem ich das gesagt hatte, konnte ich nicht herausfinden, wie man die Tastatur in einem flüchtigen Versuch direkt zu bekommen.
XCUIElement scheint einige seiner Eigenschaften von Zugänglichkeitseigenschaften abzuleiten, ist aber nicht unbedingt aussetzen die Merkmale: Sie können die Eigenschaft Variablen beliebigen NSObject sublass mit folgenden Erweiterungs Dump kann. Haben Sie die Eigenschaft 'selected' ausprobiert, um zu sehen, ob Sie das bekommen, was Sie wollen? –
'ausgewählte' Eigenschaft gibt false/nil für meine textFields zurück. – Sandy
Es gibt Eigenschaft 'hasKeyboardFocus', siehe meine Antwort unten. –