2012-08-03 2 views
5

이것은 매우 실망 스럽습니다. 검색 문자열이 비어 있어도 필터링되지 않은 결과를 UISearchDisplayController에 표시하려고합니다.검색 문자열이 비어있을 때 UISearchDisplayTableView 표시

numberOfSectionsInTableView:numberOfRowsInSection:에 디버그 코드를 추가하면 검색 문자열이 비어있을 때 0이 아닌 정수가 반환되지만 cellForRowAtIndexPath:은 호출되지 않습니다. 테이블 뷰가 숨겨져있는 것 같습니다.

searchDisplayController:(UISearchDisplayController *)controller didHideSearchResultsTableView:(UITableView *)tableViewtableview.hidden=NO;을 설정하려고 시도했습니다.

이것은 어렵지 않을 것입니다. 저는 이것이 매우 일반적인 일이라고 생각합니다!

답변

2

그럼 해결책은 UISearchDisplayController를 사용하지 않는 것입니다. 이런 식으로해야 할 유연성을 제공하지 못합니다. 최상의 유연성을 위해 UISegmentedControl, UISearchBar 및 UITableView를 사용하여 사용자 정의 검색 인터페이스를 작성하십시오. 사용자가 검색을 클릭하고, 문자열이 비어 변경 searchBartext 경우

2

은 무엇 당신이 할 수있는 것은이 "\ n"캐리지 리턴

self.searchDisplayController.searchBar.text = @"\n"; 

캐리지 리턴은 또한 검색 창에가됩니다 ​​표시되지 않습니다 사용자가 "\ n"을 입력하는 것과 같은 문자열이 아니어야합니다. 그래서 그것은 잘 작동합니다.

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString 

방법에서 당신은 뒷면에 검색 창 텍스트를 설정할 수 있습니다 @ "". 검색 문자열이 @ "\ n"인 경우

self.searchDisplayController.searchBar.text = @""; 

그게 나를 위해 일한거야!

+0

을 설정하는 것입니다; shouldReloadTableForSearchString에서 작동하지 않습니다. 내 자리 표시 자 텍스트를 볼 수있게하고 싶었습니다. 이견있는 사람? – DonnaLea

+0

나는 지금 잠 들어 있었음에 틀림 없다. 예 : – DonnaLea

+0

' "'빈 텍스트가 있으면 자리 표시 자 텍스트가 제거됩니다. @DonnaLea, 어떻게 작동하는지 설명해 주시겠습니까 – Sategroup

4

나는 이것이 이전 게시물입니다 알지만, 새로운 iOS8의 UISearchController와 같은 문제가 있었다. 해결 방법은 self.searchDisplayController.searchBar.text = @ ""를 문자열이 비어 있는지 확인하고 내가 설정 때마다 결과의 tableview의 재산 HIDDEN = NO

+0

동일한 문제가 있었지만 내 결과 tableview의 속성은 항상 NO와 같습니다. – Allen

관련 문제