gpt4 book ai didi

ios - 如何在 Objective-C 中为 pin mapview 中的文本添加事件处理程序?

转载 作者:行者123 更新时间:2023-11-29 01:42:36 25 4
gpt4 key购买 nike

我是第一次尝试使用 map View 功能。我有一个 map View 、文本字段和搜索按钮。目前一切正常:

- (IBAction)searchLocation:(id)sender {
// Create and initialize a search request object.
MKLocalSearchRequest *request = [[MKLocalSearchRequest alloc] init];
request.naturalLanguageQuery = _nameLocation.text;
request.region = _mapview.region;

// Create and initialize a search object.
MKLocalSearch *search = [[MKLocalSearch alloc] initWithRequest:request];

// Start the search and display the results as annotations on the map.
[search startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error)
{
NSMutableArray *placemarks = [NSMutableArray array];
for (MKMapItem *item in response.mapItems) {
[placemarks addObject:item.placemark];
}

[_mapview removeAnnotations:[_mapview annotations]];
[_mapview showAnnotations:placemarks animated:NO];

}];
}

现在我需要向引脚添加事件处理程序。如果用户单击引脚,我想打开新 Controller 并将地址显示为文本。如果有人能告诉我如何让听众知道当用户单击图钉时它会为我执行某些功能,我将不胜感激。此外,我想访问显示在 pin 上的地址。

编辑我实际上需要知道用户何时单击图钉显示的文本。这里是“Miranda NSW”当用户点击文本时意味着他们接受了地址。

enter image description here

最佳答案

当用户选择和取消选择引脚时,这 2 个委托(delegate)方法会让您知道

- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
- (void)mapView:(MKMapView *)mapView didDeselectAnnotationView:(MKAnnotationView *)view

像这样在您的viewForAnnotation中添加一个披露按钮

UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
pinView.rightCalloutAccessoryView = rightButton;

现在,当您点击 mapView 上的图钉时,显示的 View 中会显示一个公开按钮。然后,您需要使用以下方法告诉应用程序在按下披露按钮时要做什么。

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control

关于ios - 如何在 Objective-C 中为 pin mapview 中的文本添加事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32240208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com