2011-01-23 6 views
3

내 응용 프로그램에서 UISearchBar을 사용하고 있으며 편집 필드와 검색 기능을 모두 제공합니다. 그래서 키보드를 사라지려면 UISearchBar에서 취소 버튼을 사용해야하지만 취소 버튼을 화면에 표시 할 수 없으므로 취소 버튼을 사용하지 않고 키보드를 사용하지 않으면 키보드가 사라질 수 있습니다. 제발 아이폰 애플리케이션 개발을 처음 접해 보았습니다.UISearchbar에서 키보드를 취소하는 방법은 무엇입니까?

미리 감사드립니다.

답변

9

사용이 :


[UISearchBar resignFirstResponder]; 

그냥 사용자가 만든 객체의 이름과 단어 UISearchBar를 교체합니다.

+5

을 수행합니다 어떤 대리자의 UITextField의 위임을 설정하는 것입니다,하지만 실제로 나는 disablesAutomaticKeyboardDismissal를 오버라이드 (override) 할 필요 나는 UIModalPresentationPageSheet 뷰를 사용했기 때문에. 다른 사람들이 이것을 추적하기가 어려울 때를 대비해서 여기에 언급했습니다. – Bryan

+1

죄송합니다, UIModalPresentationFormSheet라고 했어야합니다 – Bryan

+0

우수 의견 @Bryan - 그건 제 문제였습니다. – Ralphleon

1

키보드를 닫을 수있는 방법이나 프로그래밍 방식으로 실제로 키보드를 닫을 수있는 방법을 찾고 있습니까? 프로그래밍 방식으로 제공되는 경우 [UISearchBar resignFirstResponder]. 사용자가이를 달성 할 수있는 방법을 찾고 있다면 키보드의 반환 버튼을 눌렀을 때 첫 번째 응답자 상태를 사퇴하거나보기에 UIGestureRecognizer을 첨부하고 사용자가 바깥을 클릭 할 때 키보드,이 키보드가 사라집니다.

1

은 단순히 당신이 할 필요가 UISearchbar에서의 UITextField 제어를 얻을 후 나는이 문제가 있다고 생각 -(void) textFieldShouldReturn:(UITextField *)textField

-(void)viewDidLoad{  
    UIView * subView; 
    NSArray * subViews = [searchbar subviews]; 
    for(subView in subViews) 
    { 
     if([subView isKindOfClass:[UITextField class]]) 
     { 
      ((UITextField*)subView).delegate=self; 
      ((UITextField*)subView).returnKeyType=UIReturnKeyDone; 
      break; 
     } 
    } 
} 

-(BOOL) textFieldShouldReturn:(UITextField *)textField{ 
    [textField resignFirstResponder]; 
    return TRUE; 
} 
관련 문제