次のコードを使用して、uisearchbar、tableview、および JSON Web サービスを使用して検索しています。現在の問題は、アプリがテーブルビューでデータを検索して表示しているにもかかわらず、検索バーでテキストが変更されるたびに検索していることです。ユーザーが検索ボタンをタッチした後にのみ検索したいと思います。uisearch テキスト フィールドが変更されるたびに Web にクエリを実行している間、現時点ではスタックしているようです。
ここに私が探している方法があります:
-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
NSString *searchQuery = [NSString stringWithFormat:@"http://api.****/%@",searchText];
NSString *jsonString = [NSString
stringWithContentsOfURL:[NSURL URLWithString:searchQuery]
encoding:NSStringEncodingConversionAllowLossy|NSUTF8StringEncoding
error:nil];
NSMutableArray *itemsTMP = [[NSMutableArray alloc] init];
SBJSON *parser = [[SBJSON alloc] init];
NSDictionary *results = [parser objectWithString:jsonString error:nil];
itemsTMP = [results objectForKey:@"results"];
// [self setDisplayItems:[results objectForKey:@"results"]];
[self setAllItems:[itemsTMP copy]];
self.displayItems = [itemsTMP copy];
int a = [displayItems count];
NSString *countString = [NSString stringWithFormat:@"results %d",a];
countLabel.text = countString;
[self.tableView reloadData];
}
おそらくコードをに移動する必要があると考えていました
-(void) searchBarSearchButtonClicked:(UISearchBar *)aSearchBar {
[self.searchBar resignFirstResponder];
return;
// searchBar resigns after search clicked
}
:(NSString *)searchText
しかし、このメソッドに を追加する方法がわかりませんでした
助けてくれてありがとう