我在Interface Builder中有几个UIBarButtonItem对象,我找不到任何选项来设置这些按钮的辅助功能标签或提示。
如何设置这些属性?
答案 0 :(得分:28)
您可以使用“用户定义的运行时属性”并在那里指定您的辅助功能信息:
答案 1 :(得分:22)
仅在IB中设置accessibilityLabel用户定义的运行时属性实际上是不够的。您还必须将isAccessibilityElement也设置为true。这保留了IB内的所有可访问性信息。
答案 2 :(得分:15)
好的,即使你可以使用IB在其他UI元素上设置辅助功能属性,似乎在Interface Builder中也无法做到这一点。所以我在工具栏上设置了一个标签,然后将此代码添加到我的viewWillAppear方法中:
UIToolbar *bottombar = (UIToolbar*)[self viewWithTag:kBottomToolbar];
UIView *view = (UIView*)[bottombar.items objectAtIndex:0];
[view setAccessibilityLabel:NSLocalizedString(@"Add Bookmark", @"")];
[view setAccessibilityHint:NSLocalizedString(@"Add Bookmark", @"")];
每个按钮项的等......
不是最优雅,但它有效。
答案 3 :(得分:7)
我知道这已经过时了,但我只是遇到了这个问题。从iOS 5.0开始,您现在可以通过执行以下操作轻松设置UIBarButtonItem
的辅助功能标签:
UIBarButtonItem *btn = [[UIBarButtonItem alloc] init...;
btn.accessibilityLabel = @"Label";
不再是黑客攻击。
答案 4 :(得分:4)
我得到了上面的代码,可以使用一个额外的行来处理UIBarButtonItems:
[view setIsAccessibilityElement:YES];
答案 5 :(得分:3)
您可以使用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
答案 6 :(得分:2)
尝试手动设置辅助功能标签对我来说不适用于UIBarButtonItem图像。但是,如果我手动设置标题,那么标签就可以了。但它会在图像下方显示标题。
我最终创建了一个UIButton并将其用作UIBarButtonItem的自定义视图。唯一的损失是UIBarButtonItem执行的图像屏蔽。额外奖励:IB中可配置的辅助功能。
答案 7 :(得分:1)
答案 8 :(得分:-5)
查看Apple UIAccessibility上的文档。