У меня есть следующий код:
- (void)viewDidLoad
{
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(dismissKeyboard)];
[self.view addGestureRecognizer:tap];
tap.cancelsTouchesInView = NO;
tap.delegate = self;
[tap release];
}
-(void)dismissKeyboard {
[self.textField resignFirstResponder];
}
У textField есть clearButton, и автокоррекция включена. Когда я нажимаю на кнопку clearButton, все работает нормально, и клавиатура все еще появляется после очистки UITextField
. Однако, когда я не хочу принять предложенное автоматическое исправление, клавиатура исчезает, и мой текст заменяется предлагаемым.
Мне нужен UITapGestureRecognizer
, потому что у меня есть UITextField
внутри UITableView
, поэтому, когда пользователь нажимает за пределами UITextField
, я хочу отложить клавиатуру.
Как это исправить, чтобы можно было отказаться от автокоррекции, когда пользователь захочет, а клавиатура все еще активна? Почему это работает правильно с clearButton, но не при отклонении автокоррекции?
РЕДАКТИРОВАТЬ: Он работает правильно с clearButton, потому что он находится внутри UITextField
. Таким образом, жест не запущен. Но при нажатии на предлагаемое исправление текста оно срабатывает ... Есть ли способ проверить, нажал ли пользователь на предложенное исправление текста?