Я обнаружил, что если вход (файл) является внешней формой, тогда событие обжатия кликов вызывает диалог файла.
Я вижу, что у некоторых людей возникают проблемы с использованием метода UITapGestureRecognizer
. Самый простой способ, которым я выполнил эту функцию, при этом оставляя неизменным поведение нажатия моей существующей кнопки, это добавление только одной строки к ответу @ Jensen2k:
[tap setCancelsTouchesInView:NO];
Это позволило моим существующим кнопкам по-прежнему работать без использования @ Метод Дмитрия Ситникова.
Читайте об этом property
здесь (ищите CancelsTouchesInView
): Справочник по классам UIGestureRecognizer
Я не уверен, как это будет работать с полосами прокрутки, так как я Я вижу, у некоторых были проблемы, но, надеюсь, кто-то другой может столкнуться с тем же сценарием, что и у меня.
Это должен быть самый простой способ скрыть клавиатуру, прикоснувшись к ней снаружи:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self.view endEditing:YES];
}
(из Как отключить клавиатуру, когда пользователь касается другой области за пределами текстового поля? )
Если я вас правильно понял, вы хотите отказаться от прослушивания клавиатуры на внешнем textfield
, но у вас нет ссылки на ваш textfield
.
Попробуйте это;
reftextField
Теперь в textFieldDidBeginEditing
установите ссылочное текстовое поле на
- (void) textFieldDidBeginEditing:(UITextField *)textField{
reftextField = textField;
}
Теперь вы можете с радостью использовать на любой кнопке часы (рекомендуется добавить прозрачную кнопку при начале редактирования)
- (void)dismissKeyboard {
[reftextField resignFirstResponder];
}
Или для отказа от кнопки Готово попробуйте это.
//for resigning on done button
- (BOOL) textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
return YES;
}
Если представление вообще встроено в UIScrollView
, то вы можете использовать следующее:
tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeInteractive;
Первое будет анимировать экран выключенной клавиатуры при прокрутке табличного представления, а второе скрыть клавиатура, как в приложении «Сообщения».
Обратите внимание, что они доступны на iOS 7.0 или выше.