Я знаю, что это старый, но в случае, если кто-то еще ищет простой ответ на это, вот мое решение, чтобы получить "mapView" для resignFirstResponder. Это будет работать аналогично приложению «Карты Google» на iphone, где при начале редактирования текстового поля поиска появляется полупрозрачное поле.
Во-первых, вам нужно сделать свой контроллер вида UISearchBarDelegate
@interface ViewControllerName <UISearchBarDelegate>
// your code here
@end
Затем реализуйте следующие методы делегата:
@implementation ViewControllerName
// your code here
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
darkBg = [[UIControl alloc] initWithFrame:CGRectMake(0, 244, 320, 300)];
[darkBg setBackgroundColor:[UIColor blackColor]];
[darkBg addTarget:nil action:@selector(hideKeyboard) forControlEvents:UIControlEventTouchDown];
[darkBg setAlpha:0.8];
[UIView beginAnimations:@"slideup" context:nil];
[darkBg setCenter:CGPointMake(160, 194)];
[self.view addSubview:darkBg];
[UIView commitAnimations];
}
- (void)hideKeyboard {
[UIView beginAnimations:@"fadeou" context:nil];
[darkBg setAlpha:0.0];
[UIView commitAnimations];
[addressField resignFirstResponder];
[darkBg performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:1.0];
[darkBg release];
}