Подтвердить что ты не робот

Можно ли установить идентификатор доступности в построителе интерфейса? Xcode4.2

Я могу установить метку специальных возможностей в построителе интерфейса, но в UI Automation мне нужен идентификатор доступности, чтобы получить элементы интерфейса. любой способ сделать это?

4b9b3361

Ответ 1

В Xcode 7.1 (ios 9.0) вы можете сделать это как можно проще. Пожалуйста, найдите прилагаемое изображение.

введите описание изображения здесь

Вы можете просто получить к нему доступ как view.accessibilityIdentifier

Ответ 2

Идентификатор accessibilityIndentifier можно установить в IB с помощью вкладки Identity Inspector 'User Defined Runtime Attributes':

Путь к ключу: accessibilityIdentifier

Тип: Строка

Значение: выбранный текст доступностиIdentifier

например. установив прокрутку, чтобы иметь идентификатор доступности 'ScrollView': Изображение из Xcode 8.3.2

Примечание. Это можно использовать только для элементов, обладающих свойством accessibilityIdentifier, которое они наследуют от UIView. Кроме того, опечатки в "Key Path", вероятно, вызовут исключение при загрузке элемента, я не верю, что будет предоставлено предупреждение/ошибка компиляции.

Ответ 3

В соответствии с этой страницей

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

UIAutomation будет использовать accessibilityLabel, если параметр accessibilityIdentifier не установлен, поэтому вы можете использовать это вместо этого сейчас. Вероятно, это не лучшая практика, потому что доступностьLabel является видимой (или, скорее, слышимой) для пользователя, если они используют VoiceOver, но это нормально, если вы даете имена ярлыков, которые имеют смысл для людей.

Надеюсь, что Apple добавит способ установить идентификатор accessibilityIdentifier в IB в будущем, но на данный момент вам придется установить его в коде или использовать что-то еще, например тег представления, для целевых представлений для автоматизации.

Ответ 5

Мне было интересно, вы хотите проверить вещи от xib, у которых нет IBOutlet? Может ли кто-то с большим опытом делиться своими мыслями?

Вот мой взгляд на эту тему. Если вы не назначаете IBOutlet кнопке /label/texBox или что это значит, вы не измените ее из кода. Элемент управления будет статическим, и вы можете увидеть его в построителе интерфейса. Если вы добавите IBOutlet в элемент управления, вы можете добавить acessibilityIdentifier из кода.