Другое решение, которое довольно легко реализовать и которое работает для изменения фокуса ввода или для отклонения клавиатуры.
Реализовать эту функцию (и делегат UITextFieldDelegate):
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
Затем, когда вы хотите убрать клавиатуру или изменить фокус, вам просто нужно вызвать уведомитель следующим образом:
[self performSelector:@selector(focusNextField:) withObject:textField afterDelay:0.1];
И, наконец, отклоните клавиатуру на этом:
- (void) focusNextField:(UITextField *) textField
{
[textField resignFirstResponder];
// some code
}
Ничего другого!