对于符合UIAccessibility和VoiceOver的个人应用程序,我需要更改UISearchBar中的clear text按钮(灰色交叉)的UIAccessibility标签。
我不知道如何访问这个元素。
我试着写
class ViewController: UIViewController, UISearchBarDelegate
{
@IBOutlet weak var searchBar: UISearchBar!
weak var btnCancel: UIButton?
override func viewDidLoad()
{
super.viewDidLoad()
for subView in searchBar.subviews
{
for subSubView in subView.subviews
{
if subSubView.isKindOfClass(UIButton)
{
btnCancel = subSubView as? UIButton
btnCancel?.isAccessibilityElement = true
btnCancel?.accessibilityLabel = NSLocalizedString("Clear Text", comment: "")
}
}
}
}
}
我在viewDidLoad;searchBar textDidChange;searchBarTextDidBeginEditing;
I never found any button
欢迎您的帮助
感谢来自法国Cocoacafe.fr网站的Joanna Carter
解决方案:
@IBOutlet weak var searchBar: UISearchBar!
override func viewDidLoad()
{
super.viewDidLoad()
for subView in searchBar.subviews
{
for sView in subView.subviews
{
if let textField = sView as? UITextField,
let clearButton = textField.valueForKey("clearButton") as? UIButton
{
clearButton.isAccessibilityElement = true
clearButton.accessibilityLabel = NSLocalizedString("Clear Text", comment: "")
}
}
}
}
if let searchTextField = self.searchBar。value(forKey: "searchField") as?UITextField,让clearButton = searchTextField。value(forKey: "clearButton") as?UIButton {clearButton。isaccessibilitelement = trueclearButton。tintColor = .redclearButton。accessbilitylabel = NSLocalizedString("清除按钮可访问性标签;",注释:")}