檢查這個帖子:https://stackoverflow.com/a/20141677/1464327
基本上,你可以讓多個請求。例如,當用戶鍵入時,啓動計時器,當計時器結束時,發出請求。每當用戶輸入時,取消前一個定時器。
實現文本字段委託textField:shouldChangeCharactersInRange:replacementString:
。
static NSTimer *_timer = nil;
[_timer invalidate];
_timer = [NSTimer timerWithTimeInterval:1.5 target:self selector:@selector(_search:) userInfo:nil repeats:NO];
然後執行_search方法發出請求。
MKLocalSearchRequest *request = [[MKLocalSearchRequest alloc] init];
request.region = regionToSearchIn;
request.naturalLanguageQuery = self.textField.text;
MKLocalSearch *localSearch = [[MKLocalSearch alloc] initWithRequest:request];
[localSearch startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error) {
// check for error and process the response
}];
我從來沒有實現過這樣的東西。我只是告訴我的出發點是什麼。希望這會給你一些方向。
,如果你想加入谷歌位置意味着再有就是像下面http://maps.googleapis.com/maps/api/geocode/json?address=%@&sensor=true和位置搜索的免費API你也可以在UITableView中列出它們,當用戶點擊一個單元格時,你可以動態地將它添加到SearchBox中。 –