2012-04-20 28 views
0

我使用UISearchBar,搜索工作正常,但搜索後點擊取消按鈕,didSelectedRowAtIndexPath不在UItableView中工作。它不允許我選擇任何行進一步。點擊UISearchBar中的取消按鈕會導致tableView中沒有選擇?

任何想法?

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar 
{ 
    isSearchOn = YES; 
    canSelectRow = NO; 
    table.scrollEnabled = NO; 
} 

- (void) doneSearching:(id)sender 
{ 
    isSearchOn = NO; 
    canSelectRow = YES; 
    table.scrollEnabled = YES; 
    self.navigationItem.rightBarButtonItem = nil; 

    [table reloadData]; 
} 

- (void)searchBar:(UISearchBar *)searchBar 
    textDidChange:(NSString *)searchText 
{ 
    if ([searchText length] > 0) { 
     isSearchOn = YES; 
     canSelectRow = YES; 
     table.scrollEnabled = YES; 
     [self searchMoviesTableView:searchText]; 
    } 
    else { 
     isSearchOn = NO; 
     canSelectRow = NO; 
     table.scrollEnabled = NO;  
    } 
    [table reloadData]; 
} 

- (void) searchMoviesTableView :(NSString*)searchText{ 
    [searchResult removeAllObjects]; 

    for (NSDictionary *artistDic in listOfMovies) { 
     NSRange titleResultRange = [[artistDic valueForKey:@"artist"] rangeOfString:searchText options:(NSCaseInsensitiveSearch | NSLiteralSearch)]; 
     if (titleResultRange.length > 0) 
      [searchResult addObject:artistDic]; 
    } 
} 

-(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar 
{ 
    searchBar.text = @""; 
    table.scrollEnabled = true; 
    [table reloadData]; 
    [searchBar resignFirstResponder]; 
} 

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar 
{ 
    [searchBar resignFirstResponder]; 
} 

回答

1

這裏是我的錯......

else { 
    isSearchOn = NO; 
    canSelectRow = NO; 
    table.scrollEnabled = NO;  
} 

set canSelectRow=YES; 
0

我注意到,你在呼喚:

searchBar.text = @""; 
searchBarCancelButtonClicked:

,這可能導致searchBar:textDidChange:另一個電話。在searchBar:textDidChange:設置:

canSelectRow = NO; 

字符串長度爲0(這對於@""是真的)。我想知道是什麼原因?

+0

感謝您給予答案,但我只能接受一個......!我已經得到答案。 – Warewolf 2012-04-20 11:41:56

相關問題