UISearchBar访问为UIAccessibility清除文本按钮



对于符合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("清除按钮可访问性标签;",注释:")}

最新更新