Based on some of the other ideas posted here, this is a solution that is easy to implement, works (for me) in all cases, and doesn’t appear to have any side effects:
- (void)textFieldDidEndEditing:(UITextField *)textField
{
// Workaround for the jumping text bug.
[textField resignFirstResponder];
[textField layoutIfNeeded];
}
This solution works both if you’re going to the next field programmatically from -textFieldShouldReturn:
or if the user just touches another responder.