Happy Cat: 열두마리들의 고양이들과 함께 생활하는 개발자의 일상과 이런저런 이야기들...

x button delegate of UISearchBar

UISearchBarDelegate에서 showsCancelButton=NO로 생성을 해도
searchBarCancelButtonClicked가 먹힐줄 알았는데 안먹히네요... 다행히 하위뷰를 검색해서
UITextField를 강제로 delegate를 self로 먹이니 바로 해결되었습니다.
x버튼을 누르면 UITextField에 델리게이트가 동작하네요...
단! 그밖의 delegate는 UISearchBar에서 동작이 중복될수도 있으니 주의하시길. 
 
- (void)viewDidLoad:
{
    for (UIView* v in searchBar.subviews)
    {
        if ( [v isKindOfClass: [UITextField class]] )
        {
            UITextField *tf = (UITextField *)v;
            tf.delegate = self;
            break;
        }
    }    
}
- (BOOL)textFieldShouldClear:(UITextField *)textField
{
     [textField resignFirstResponder];
     [self.searchBar resignFirstResponder];
     return YES;
}

 
저작자 표시 비영리 동일 조건 변경 허락
신고

Write your message and submit