gpt4 book ai didi

ios - 即使在 viewDidLoad 中设置了委托(delegate),UISearchBar 也无法正常工作

转载 作者:行者123 更新时间:2023-12-01 18:49:47 25 4
gpt4 key购买 nike

searchBarBookmarkButtonClicked当我点击搜索栏时,方法没有触发。我已经添加了 self.searchBar.deleagate = self;在我的 .h 文件中,我添加了 <UISearchBarDelegate> .

.h 文件:

#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>

@interface ViewController : UIViewController <UISearchBarDelegate,MKMapViewDelegate>

@property (strong, nonatomic) IBOutlet UISearchBar *searchBar;

@property (strong, nonatomic) IBOutlet MKMapView *myMap;

@end

.m 文件:
#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.searchBar.delegate = self;
self.myMap.delegate = self;
}

- (void)searchBarBookmarkButtonClicked:(UISearchBar * )searchBar{
NSLog(@"working");

[self.searchBar resignFirstResponder];
NSLog(@"working");

CLGeocoder *geocoder = [[CLGeocoder alloc] init];

[geocoder geocodeAddressString:self.searchBar.text completionHandler:^(NSArray *placemarks, NSError *error) {
CLPlacemark *placemark = [placemarks objectAtIndex:0];
MKCoordinateRegion region;
CLLocationCoordinate2D newLocation = [placemark.location coordinate];
region.center = [(CLCircularRegion *)placemark.region center];

MKPointAnnotation *annotation = [[MKPointAnnotation alloc] init];
[annotation setCoordinate:newLocation];
[annotation setTitle:self.searchBar.text];
[self.myMap addAnnotation:annotation];

MKMapRect mr = [self.myMap visibleMapRect];
MKMapPoint pt = MKMapPointForCoordinate([annotation coordinate]);
mr.origin.x = pt.x - mr.size.width * 0.5;
mr.origin.y = pt.y -mr.size.width * 0.25;
[self.myMap setVisibleMapRect:mr animated:YES];
}];

}

@end

最佳答案

确保你有

  • 所有委托(delegate)都已正确设置,这可以在代码中完成,也可以在
    在 Storyboard中。
  • 使用正确的委托(delegate)方法来捕获
    事件。

  • 如果你认为
    - (void)searchBarBookmarkButtonClicked:(UISearchBar * )searchBar

    然后尝试使用其他更直接的方法来触发搜索
    - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar

    关于ios - 即使在 viewDidLoad 中设置了委托(delegate),UISearchBar 也无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32124232/

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