Если вы используете код в другом ответе, ваше приложение будет отклонено при отправке в магазин приложений (для использования непубличного API). Я нашел это трудным путем. Лучшее решение - создать категорию. Вот что я использовал для замены кода в исходном решении:
@interface UIView (FindFirstResponder)
- (UIView *)findFirstResponder;
@end
И
@implementation UIView (FindFirstResponder)
- (UIView *)findFirstResponder
{
if (self.isFirstResponder) {
return self;
}
for (UIView *subView in self.subviews) {
UIView *firstResponder = [subView findFirstResponder];
if (firstResponder != nil) {
return firstResponder;
}
}
return nil;
}
@end