나는 UISearchBar에 검색어를 쓰면 아래의 UITabelView 출력을 변경 (필터)하는 검색 기능이있는 iPhone 앱에서 작업하고 있습니다. 검색 창 내부 편집 할 때아이폰 검색 막대 취소 버튼 응용 프로그램을 무력화
사용자가 검색 창의 내용을 편집하고 모든 텍스트를 삭제됩니다가, 다음 코드는 이제
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
if([searchText isEqualToString:@""] || searchText==nil){
[tableData removeAllObjects]; //clear array that holds data for table view
[tableData addObjectsFromArray:tumorNames]; //load array with database
[searchTableView reloadData];
return;
}
}
(method continues...)
에서 실행이 잘 작동 : 삭제 여부 백 스페이스/삭제가있는 모든 텍스트 또는 '지우기'버튼을 누르지 않아도됩니다. 검색 필드가 지워지고 검색 가능한 모든 항목이 테이블보기에 표시됩니다. '취소'버튼을 눌러도 마찬가지지만,이 경우에는 검색 창이 첫 번째 응답자를 종료합니다.
그러나 검색이 수행되고 하나 이상의 결과 항목이 테이블보기에 표시 될 때 (검색 표시 줄이 첫 번째 응답자의 사임을 받고 키보드가 사라진 경우) 지우기 단추를 눌러도 여전히 가능하지만 앱 다음과 같은 메시지가 충돌 :
'NSRangeException', reason: '*** -[NSCFArray objectAtIndex:]: index (0) beyond bounds (0)'
문제가 테이블 뷰 데이터의 재로드 내에있는 것으로 나타나지만 배열의 인덱스 일 경우가 아니라에 문제가있을 수 왜 내가 알아낼 수 없습니다 다른 쪽.
왜 이런 일이 일어날 지 알고 있습니다. 모든 도움을 주셨습니다.
맑은 버튼을 클릭 그레고르, 스웨덴
[searchBar resignFirstResponder]; 속임수를 쓰자. – Souljacker