У меня есть несколько объектов UIBarButtonItem в Interface Builder, и я не могу найти никакой опции для установки метки доступности или подсказки для этих кнопок.Установить атрибуты доступности на UIBarButtonItem
Как установить эти атрибуты?
У меня есть несколько объектов UIBarButtonItem в Interface Builder, и я не могу найти никакой опции для установки метки доступности или подсказки для этих кнопок.Установить атрибуты доступности на UIBarButtonItem
Как установить эти атрибуты?
Ознакомьтесь с документацией от Apple по телефону UIAccessibility.
Да, я уже читал документы. Я надеялся, что есть способ сделать это в IB или каким-то другим элегантным способом. Я опубликовал решение kludge, но все еще открыт для более чистого подхода. –
К сожалению, эта возможность не добавлена (пока?) В IB. Я думаю, что ты, наверное, лучший, что ты собираешься сделать сейчас. –
Хорошо, так что в Interface Builder нет возможности сделать это, даже если вы можете установить атрибуты доступности для других элементов пользовательского интерфейса, используя 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", @"")];
и так далее для каждого элемента кнопки ...
Не самый элегантный, но это работает.
Начиная с iOS 5.0 вы можете прямо установить свойство 'accessibilityLabel' на' UIBarButtonItem'. – rmaddy
Попытка установить метки доступности вручную не работала для меня с изображениями UIBarButtonItem. Однако, если я задал заголовок вручную, метка будет работать. Но он отображает заголовок под изображением.
В итоге я создал UIButton и использовал его как пользовательский вид для UIBarButtonItem. Единственная потеря - это маскирование изображения, которое выполняет UIBarButtonItem. Добавлен бонус: доступность настраивается в IB.
Я получил код выше, чтобы работать с UIBarButtonItems с одной дополнительной линии:
[вид setIsAccessibilityElement: YES];
Это решило проблему. Имейте в виду, что если родительский вид также имеет этот набор в значение «ДА», то подпункты игнорируются. –
Я знаю, что это старый, но я просто столкнулся с необходимостью этого. С прошивкой 5.0, теперь вы можете легко установить доступность метку UIBarButtonItem
, выполнив:
UIBarButtonItem *btn = [[UIBarButtonItem alloc] init...;
btn.accessibilityLabel = @"Label";
Нет больше хаков.
Это не на самом деле достаточно просто установить Определено время выполнения accessibilityLabel пользователя Атрибут в IB. Вы также должны установить isAccessibilityElement в true. Это сохраняет всю доступную информацию в IB.
Для этого вы можете использовать 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
}
}
}
https://gist.github.com/KaneCheshire/dcce5246c3399072a5200189bfc53fe2
Есть ли способ сделать это на раскадровку в XCode 5? – fatuhoku