@@ -198,8 +198,7 @@ - (void)TPKeyboardAvoiding_findTextFieldAfterTextField:(UIView*)priorTextField b
198198 // Search recursively for text field or text view below priorTextField
199199 CGFloat priorFieldOffset = CGRectGetMinY ([self convertRect: priorTextField.frame fromView: priorTextField.superview]);
200200 for ( UIView *childView in view.subviews ) {
201- if ( childView.hidden ) continue ;
202- if ( ([childView isKindOfClass: [UITextField class ]] || [childView isKindOfClass: [UITextView class ]]) && childView.isUserInteractionEnabled ) {
201+ if ([self TPKeyboardAvoiding_viewIsNextTextField: childView]) {
203202 CGRect frame = [self convertRect: childView.frame fromView: view];
204203 if ( childView != priorTextField
205204 && CGRectGetMinY (frame) >= priorFieldOffset
@@ -215,6 +214,24 @@ - (void)TPKeyboardAvoiding_findTextFieldAfterTextField:(UIView*)priorTextField b
215214 }
216215}
217216
217+ - (BOOL )TPKeyboardAvoiding_viewIsNextTextField : (UIView *)view {
218+ if (view.hidden ) return NO ;
219+
220+ if ([view isKindOfClass: [UITextField class ]]) {
221+ UITextField *textField = (UITextField *)view;
222+ if (!textField.enabled ) return NO ;
223+
224+ }
225+
226+ if ( ([view isKindOfClass: [UITextField class ]] ||
227+ [view isKindOfClass: [UITextView class ]])
228+ && view.isUserInteractionEnabled ) {
229+ return YES ;
230+ }
231+
232+ return NO ;
233+ }
234+
218235- (void )TPKeyboardAvoiding_assignTextDelegateForViewsBeneathView : (UIView*)view {
219236 for ( UIView *childView in view.subviews ) {
220237 if ( ([childView isKindOfClass: [UITextField class ]] || [childView isKindOfClass: [UITextView class ]]) ) {
0 commit comments