如何使用UISearchBar搜索具有自动完成和建议的位置?

wz3*_*366 4 cocoa-touch uisearchbar mkmapview ios mklocalsearch

我正在开发一个应用程序,用户可以在其中搜索兴趣点,选择搜索结果,然后MKMapView将以结果坐标为中心.

我的问题是如何实现自动完成?我已经做了研究 MKLocalSearch,并MKLocalSearchRequest和它似乎是苹果建议API对iOS6.1 +位置搜索.但是,我找不到任何带有自动完成功能的示例或带有MKLocalSearch和的建议MKLocalSearchRequest.是否可以像Apple的地图应用程序一样自动完成位置搜索或显示建议列表?谢谢!

rti*_*o42 7

查看这篇文章: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];
Run Code Online (Sandbox Code Playgroud)

然后实现_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
}];
Run Code Online (Sandbox Code Playgroud)

我从来没有实现过这样的东西.我只是告诉我的出发点是什么.希望这会给你一些指导.