2016-09-05 9 views
1

UIAccessibilityおよびVoiceOverに準拠する個人用アプリケーションでは、UISearchBarのクリアテキストボタン(グレーの十字)のUIAccessibiltyラベルを変更する必要があります。UISearchBarによるUIAccessibilityのクリアテキストボタンへのアクセス

この要素にアクセスする方法はありません。

私はのviewDidLoad上でそれを試してみてください

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: "") 
     } 
     } 
    } 
    } 
} 

のようなものを試してみてください。 searchBar textDidChange; searchBarTextDidBeginEditing;

は私が

あなたの助けが歓迎されているいずれかのボタンを発見したことはありません

答えて

0

Thanks to Joanna Carter from french website Cocoacafe.fr

ソリューション:

@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: "") 
     } 
     } 
    } 
    } 
関連する問題