Установите атрибуты доступности на UIBarButtonItem - PullRequest
31 голосов
/ 27 октября 2009

У меня есть несколько объектов UIBarButtonItem в Интерфейсном Разработчике, и я не могу найти никакой опции, чтобы установить метку доступности или подсказку для этих кнопок.

Как я могу установить эти атрибуты?

Ответы [ 9 ]

28 голосов
/ 11 декабря 2013

Вы можете использовать «Определенные пользователем атрибуты времени выполнения» и указать свою информацию о доступности там: Runtime attributes

22 голосов
/ 15 января 2015

На самом деле недостаточно просто установить accessibilityLabel User Defined Runtime Attribute в IB. Вы также должны установить для isAccessibilityElement значение true. Это сохраняет всю информацию о доступности в IB. IB Screenshot

15 голосов
/ 27 октября 2009

Хорошо, кажется, что нет никакого способа сделать это в Интерфейсном Разработчике, даже если вы можете установить атрибуты доступности для других элементов пользовательского интерфейса, используя IB. Поэтому я установил тег на панели инструментов, а затем добавил этот код в метод viewWillAppear:

UIToolbar *bottombar = (UIToolbar*)[self viewWithTag:kBottomToolbar];

UIView *view = (UIView*)[bottombar.items objectAtIndex:0];
[view setAccessibilityLabel:NSLocalizedString(@"Add Bookmark", @"")];
[view setAccessibilityHint:NSLocalizedString(@"Add Bookmark", @"")];

и так далее для каждого элемента кнопки ...

Не самый элегантный, но работает.

7 голосов
/ 11 марта 2013

Я знаю, что это старый, но я просто столкнулся с необходимостью для этого. Начиная с iOS 5.0, теперь вы можете легко установить метку доступа UIBarButtonItem, выполнив:

UIBarButtonItem *btn = [[UIBarButtonItem alloc] init...;
btn.accessibilityLabel = @"Label";

Нет больше хаков.

4 голосов
/ 01 мая 2010

Я получил приведенный выше код для работы с UIBarButtonItems с одной дополнительной строкой:

[просмотр setIsAccessibilityElement: ДА];

3 голосов
/ 24 августа 2016

Вы можете использовать IBInspectable для этого, чтобы получить некоторые удобные опции на боковой панели Interface Builder.

public extension UIBarButtonItem {
  @IBInspectable var accessibilityEnabled: Bool {
    get {
      return isAccessibilityElement
    }
    set {
      isAccessibilityElement = newValue
    }
  }

  @IBInspectable var accessibilityLabelText: String? {
    get {
      return accessibilityLabel
    }
    set {
      accessibilityLabel = newValue
    }
  }
}

UIBarButton Accessibility options in Interface Builder

https://gist.github.com/KaneCheshire/dcce5246c3399072a5200189bfc53fe2

2 голосов
/ 06 января 2010

Попытка установить метки специальных возможностей вручную не работает для меня с изображениями UIBarButtonItem. Однако, если я установлю заголовок вручную, ярлык будет работать. Но он отображает заголовок под изображением.

Я закончил тем, что создал UIButton и использовал его как пользовательское представление для UIBarButtonItem. Единственная потеря - маскировка изображения, которую выполняет UIBarButtonItem. Дополнительный бонус: доступность настраивается в IB.

1 голос
/ 09 апреля 2019

В Xcode 10.2 поле Title работает хорошо. Вот, например, моя кнопка доступна как «Сортировка»:

enter image description here

0 голосов
/ 27 октября 2009

Ознакомьтесь с документацией Apple по UIAccessibility .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...