I have found the bug in implementation of the algorithm to find next responder.
Function : TPKeyboardAvoiding_findTextFieldAfterTextField
Part : the condition expression if the found textfield (or textview) is the exact "Next" field of the priortextfield.
Because of this issue, TPKeyboardAvoidingTableView is sometimes not finding the correct next textfield inside the dynamically added tableviewcell if the cell has 2 textfields that have the same y value.
I have found the bug in implementation of the algorithm to find next responder.
Function : TPKeyboardAvoiding_findTextFieldAfterTextField Part : the condition expression if the found textfield (or textview) is the exact "Next" field of the priortextfield.
childView != priorTextField && CGRectGetMinY(frame) >= priorFieldOffset && CGRectGetMinY(frame) < *minY && !(frame.origin.y == priorTextField.frame.origin.y && frame.origin.x < priorTextField.frame.origin.x)
This should be done like this (the frames should be relative values based on the superview)
childView != priorTextField && CGRectGetMinY(frame) >= priorFieldOffset && CGRectGetMinY(frame) < *minY && !(CGRectGetMinY(frame) == priorFieldOffset && CGRectGetMinX(frame) < priorFieldOffsetX)
Here, priorFieldOffsetX = CGRectGetMinX([self convertRect:priorTextField.frame fromView:priorTextField.superview])
Because of this issue, TPKeyboardAvoidingTableView is sometimes not finding the correct next textfield inside the dynamically added tableviewcell if the cell has 2 textfields that have the same y value.