2012-06-14 2 views
1

Im new to objC 및 Im은 현재 UISearchDisplayController에서 실험 중입니다. 기본적으로 내 데이터로 문자열 배열을 가지고 있고 데이터를 필터링하기 위해 UISearchBarDisplayController를 사용합니다. 검색 바에 내 searchText를 입력하면 올바른 값을 검색 할 수 있습니다. 그러나 내 searhBar 텍스트가 비어있을 때 tableView 사라집니다.UISearchDisplayController가 UiTable을 숨기지 않도록합니다.

이러한 경우에 tableView가 숨겨지는 것을 방지 할 수 있습니까? 원하는 것은 searchBar 텍스트가 비어있는 경우 테이블의 모든 배열을 배열에 표시하는 것입니다.

테이블의 숨김/알파/프레임 속성을 확인하고 여기에서 내 문제를 해결하려고했지만 잘못된 경로에있는 것으로 생각합니다. UISearchDisplayController를 서브 클래스 화하고 [setActive : YES animated : YES];를 재정의해야한다고 생각합니다. 어떤 힌트를 주시면 감사하겠습니다.

+0

가 UISearchDisplayController를 서브 클래스 시도하고 재정의있는 tableView의 일부 속성을 방법 및 설정 [setActive을 : : 애니메이션] 화면에 나타나게하십시오. 그러나 아직도 운이 없다, 이것을 알아낼 수는 없다. : – TheNitram

답변

0

UISearchBar 및 UITable로 작업을 마쳤습니다. 그래서 여기에 내가 발생하는 시나리오가 있습니다.

  1. 검색 막대를 클릭하면 UITable이 표시됩니다.
  2. UITable은 searchText가 비어있을 때 내 plist의 모든 데이터를 표시합니다.
  3. UITable은 내 plist에서 searchText와 일치하는 필터링 된 결과를 보여줍니다.
  4. 검색 버튼을 눌렀을 때 키보드를 닫지 만 검색 창에서 취소 버튼을 비활성화하지 마십시오.
  5. 취소 단추를 누를 때 UITable을 제거하십시오.

현재 테이블을 보여주는 애니메이션이 없지만이 작품은 저에게 적합합니다. 또한 검색 할 때 테이블에서 사용자 상호 작용 및 스크롤을 허용하므로이 경우 오버레이가 필요하지 않습니다. 다행 이네요. :)

필자는 필요할 수있는 사람들을 위해 샘플 프로젝트를 만들었습니다. 다음은 link입니다. 지저분한 코드와 누출 문제에 사과드립니다. 방금이 내용을 게시했습니다. :)

0

문자열이 비어있을 때를 포함하여 검색 매개 변수의 변경 사항에 대한 이벤트를 받아야합니다.

문자열이 비어 있는지 확인하기 위해 해당 대리인 메서드의 구현을 변경하면 필터링 된 데이터 대신 원래 데이터를 반환 할 수 있습니다. 이것은 서브 클래 싱 할 필요없이 당신이 원하는 것을 얻을 수 있어야합니다.

+0

이 문제는 searchController가 활성화되는 즉시 tableView가 표시되지 않고 검은 색 오버레이 만 표시되며 검색 문자열이 비어 있으면 사라집니다. [searchBar : textDidChange :]를 호출 해 보았습니다. inside [searchBarTextDidBeginEditing :]하지만 searchBarTextDidBegin 메서드가 호출 될 때 표시 할 테이블을 가져올 수 없습니다. – TheNitram

0
당신은 항상 검색 텍스트 필드에 제로 공간 폭 문자를 남겨 시도 할 수

:

static NSString* zsp = @"\u200B"; 

//In the UISearchBarDelegate 

- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
{ 
    if(searchBar.text.length == 1 && [text isEqualToString:@""]) 
    { 
     searchBar.text = zsp; 
     return NO; 
    } 

    return YES; 
} 
관련 문제