检查这篇文章: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
}];
我从来没有实施过这样的事情。我只是说我的出发点是什么。希望这会给你一些方向。