Этот ответ демонстрирует, что делегат решает, отклонить или нет клавиатуру.
Если вы хотите закрыть клавиатуру, textFieldShouldReturn: должны вернуть NO:
-(BOOL) textFieldShouldReturn:(UITextField*) theTextField{
[theTextField resignFirstResponder];
return NO;
}