В вашем делегате функция
- (BOOL)textFieldShouldClear:(UITextField *)textField
вызывается, когда пользователь хочет очистить текстовое поле. Если вы вернетесь ДА и позвоните
[textField resignFirstResponder];
клавиатура должна исчезнуть. Я не знаю о clearButtonMode, кроме того, что вы, возможно, захотите установить его раньше, предпочтительно перед добавлением представления в его суперпредставление.
edit Чтобы убедиться, что вы действительно подали в отставку респонденту, попробуйте сделать это чуть позже:
[textField performSelector:@selector(resignFirstResponder) withObject:nil afterDelay:0.1];