2012-08-15 5 views
1

다른 파일에 데이터 소스/위임이있는 테이블보기가 있습니다. 또한 첫 번째 파일에 속하는 테이블보기 위에 검색 막대가 있습니다. 스크롤 할 때 키보드를 숨기는 다른, 나는 전화를해야합니다 :어떻게 외부 UITableView 대리인이 UISearchBar 키보드를 숨길 수 있습니까?

[self.searchBar resignFirstResponder] 

그러나

(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView 

방법은 대리자입니다. 그러면이 경우 스크롤 할 때 키보드를 어떻게 숨길 수 있습니까?

감사합니다.

답변

1

scrollviewwillbegindragging에서 알림을 보낼 수 있습니다. 있는 tableview 위임 :

-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{ 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"resign" object:nil]; 
} 

검색 창 위임 :

-(void)viewDidLoad{ 
    [super viewDidLoad]; 
[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(goTo:) name:@"resign" object:nil]; 
} 

-(void)goTo:(NSNotification*)notification { 
[self.searchBar resignFirstResponder]; 

} 
0

할 수있는 많은 방법이있다, 그들 중 몇은 다음과 같습니다.

옵션 1 : 강제 종료 (내가 aViewcontrollerObj.view로하는 것을 기대하고 있습니다) 당신의 tableview의 수퍼 받기 : 이 테이블 개체

[yourTableView setKeyboardDismissMode:UIScrollViewKeyboardDismissModeOnDrag]; 

또는

옵션 2를 초기화 한 후 라인 아래 추가 그것의 편집. :)

코딩 해피 을하는 데 도움이

-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView 
{ 
    UIView *tableviewSuperView = yourTableView.superview; 
    [tableviewSuperView endEditing:true]; 
} 

희망

관련 문제