2016-09-05 3 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: "") 
     } 
     } 
    } 
    }