2009-12-12 8 views
0

가 UISearchBar가 완료 알림을받을 수있는 방법이 있나요 (예를 들어 버튼을 클릭하거나 포커스를 잃었 취소합니다.UISearchBar 숨기기 알림을받는 방법?

을 우리는 내부의 UITextField에 액세스 할 수없는, 또는 내가 그것을 관찰자를 첨부 할 수 있습니다.

가 나는 경우 keyboardWillHide 알림을받을 수 있습니다,하지만 난 다른 텍스트 필드를 가지고, 그래서 둘 중 하나가 될 수있다. 그리고 그것은 그래서 사랑, 키보드 가죽 전에 비활성 상태가 없습니다.

나는 UISearchBarDelegate에 액세스 할 수 및 UISearchDisplayController (대리인).

누구나 어디를 봐야 할 지 말해 줄 수 있습니까? 선택할 수있는 모든 알림의 마스터 목록이 있습니까? 당신을 위해 무엇을해야

답변

1

이러한 방법 :

- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar;  // called when text ends editing 
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar;  // called when keyboard search button pressed 
- (void)searchBarBookmarkButtonClicked:(UISearchBar *)searchBar; // called when bookmark button pressed 
- (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar; // called when cancel button pressed 

이 모든 UISearchBarDelegate 위임 방법. 규칙에 따라 대리자 메서드는 알림 관찰자를 추가하는 것보다 더 밀접합니다. 이것은 스탠포드 대학의 iPhone 비디오 중 하나에서 언급되었습니다. 나 자신도 통보를 아낌없이 사용하고 있지만 문제는 발견되지 않았습니다.

+0

searchBarCancelButtonClicked는 사례 중 하나에서 작동하지만 앱에서 가장 많이 사용되는 경우는 사용자가 검색 창과 키보드 사이의 빈 공간을 탭하면 검색 창이 사라집니다. 어떤 대리자 메서드도 호출되지 않습니다. – kbanman

+0

검색 막대와 키보드 사이에 공간 크기의 단추가있을 수 있으며 키보드가 나타날 때만 표시하고 해당 공간을 클릭하면 다시 제거 할 수 있습니다. [self addSubview : button]과 같이 할 수 있습니다. 키보드가 나타나거나 검색 창이 편집을 시작하고 그 공간을 클릭하면 사용자는 기본적으로 보이지 않는 버튼을 클릭하고 resignFirstResponder를 사용하여 키보드를 닫고보기에서 버튼을 제거 할 수 있습니다. –

0

일반적으로 클래스에 대한 Apple 문서에 알림 섹션이 없으면 해당 클래스에 대해 공개적으로 사용할 수있는 알림이 없습니다.

나는 Chintan의 대표자 사용 제안에 대해 설명 할 것입니다.

관련 문제