Вот лучшее решение, которое будет работать для любого UITextField в вашем контроллере представления. Вы даже можете добавить его в свой базовый контроллер вида (если он у вас есть), и он будет работать как шарм.
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
if (![[touch view] isKindOfClass:[UITextField class]]) {
[self.view endEditing:YES];
}
[super touchesBegan:touches withEvent:event];
}