В некоторых случаях у меня нет прямого доступа к «первому респонденту», поэтому я склонен использовать другой подход.
У меня есть служебный класс для клавиатуры с этой функцией:
+ (BOOL)dismiss:(UIView *)view
{
if (view.isFirstResponder) {
[view resignFirstResponder];
return YES;
}
for (UIView *subView in view.subviews) {
if ([Keyboard dismiss:subView]) // It's calling itself, just to be perfectly clear
return YES;
}
return NO;
}
Это позволяет мне просто позвонить, например: [Keyboard dismiss:self.view]
из любого места в пределах UIViewController
.