web-dev-qa-db-ja.com

インターフェイスビルダーでアクセシビリティ識別子を設定できますか? Xcode4.2

アクセシビリティラベルはインターフェイスビルダーでのみ設定できますが、UIオートメーションでは、UI要素を取得するためにアクセシビリティ識別子が必要です。これを行う方法はありますか?

25
CarmeloS

Xcode 7.1(ios 9.0)では、それをできるだけ簡単に行うことができました。添付の画像をご覧ください。

enter image description here

View.accessibilityIdentifierとして簡単にアクセスできます

11
Anees

AccessibilityIndentifierは、Identity Inspectorタブの「User Defined Runtime Attributes」を使用してIBで設定できます。

キーパス:accessibilityIdentifier

タイプ:文字列

値:選択されたaccessibilityIdentifierテキスト

例えば。スクロールビューをアクセシビリティID「ScrollView」に設定: Image from Xcode 8.3.2

注:これは、UIViewから継承するaccessibilityIdentifierプロパティを持つ項目でのみ使用できます。また、「キーパス」のタイプミスにより、アイテムが読み込まれたときに例外が発生する可能性があります。コンパイルの警告/エラーが表示されるとは思いません。

55
Joseph

このページによると

http://developer.Apple.com/library/ios/#documentation/AnalysisTools/Conceptual/WhatsNewInstruments/NewFeatures42/NewFeatures42.html

UIAutomationは、accessibilityIdentifierが設定されていない場合はaccessibilityLabelを使用するため、今のところ代わりに使用できます。ユーザーがVoiceOverを使用している場合、ユーザーにはaccessibilityLabelが表示される(またはaudible)ので、これはおそらくベストプラクティスではありませんが、それでも問題ありません。人間にとって意味のあるラベル名を付けると、.

うまくいけば、Appleは将来的にIBにaccessibilityIdentifierを設定する方法を追加しますが、今のところ、コードで設定するか、ビュータグなどの他の何かを使用してビューのターゲットを設定する必要がありますオートメーション。

5
Nick Lockwood

accessibilityIdentifier IOS 5.0以降にのみ適用されます。..参照してください...

https://developer.Apple.com/library/ios/documentation/uikit/reference/UIAccessibilityIdentification_Protocol/Introduction/Introduction.html

1
user3131492

IBOutletがないxibからテストしたいですか?もっと経験のある人が自分の考えを共有できますか?

これが私の見解です。 IBOutletをボタン/ラベル/ texBoxに割り当てない場合、またはこれが意味することは、コードから変更しないことです。コントロールは静的であり、Interface Builderで確認できます。コントロールにIBOutletを追加する場合、コードからacessibilityIdentifierを追加できます。

0
SimpleApp