Нажмите на кнопку очистки UITextField скрывает клавиатуру вместо очистки текста
В iPhone у меня есть вид, который имеет UITextField
. Когда я нажимаю кнопку очистки UITextField
, клавиатура закрывается вместо очистки текста в UITextField
. На iPad он работает правильно. Что я могу сделать, чтобы это исправить?
Ответы
Ответ 1
Просто очистите поле, resignFirstResponder
(если вы хотите скрыть клавиатуру) и верните NO
/false
Примечание: установите свойство инспектора атрибутов UITextField
Clear Button → Appears while editing
поэтому при редактировании в текстовом поле будет отображаться кнопка очистки.
//Objective-C
-(BOOL)textFieldShouldClear:(UITextField *)textField
{
textField.text = @"";
[textField resignFirstResponder];
return NO;
}
//Swift
func textFieldShouldClear(textField: UITextField) -> Bool {
textField.text = ""
textField.resignFirstResponder()
return false
}
Ответ 2
Попробуйте этот код после присоединения делегата uitextifield
-(BOOL)textFieldShouldClear:(UITextField *)textField
{
return true;
}
Ответ 3
Сначала проверьте все блоки кода, связанные с вашим UITextField
(особенно кодом yourTextField.hidden = YES;
)
Положите точки останова и проанализируйте всех делегатов UITextField
, которые вы внедрили.
(textFieldDidEndEditing
, textFieldShouldEndEditing
, textFieldShouldReturn.etc
.)
ИЛИ
Внесите делегат textFieldShouldClear
и напишите код здесь, чтобы увидеть и очистите UITextField
Чтобы сделать это, вы должны установить clearButtonMode
, как показано ниже,
yourTextField.clearButtonMode = UITextFieldViewModeWhileEditing;
yourTextField.delegate = self;
//For active keyboard again
[yourTextField becomeFirstResponder];
Затем выполните делегат textFieldShouldClear
YourClass.h
@interface className : UIViewController <UITextFieldDelegate>
YourClass.m
-(BOOL)textFieldShouldClear:(UITextField *)textField {
yourTextField.hidden = NO;
yourTextField.text = @"";
return YES;
}
Ответ 4
Просто убедитесь, что U've дал эти два
editingTextField.delegate = self;
editingTextField.clearButtonMode = UITextFieldViewModeWhileEditing;
TextFieldShouldClear необходим, только если вам нужно выполнить некоторые настройки: -)
Вы что-то делаете в этом методе?
Возможно, вы вызываете resignFirstResponder в этом методе делегата, поэтому клавиатура отклоняется.
Пройдите через методы делегата и проверьте, что именно делает.
Ответ 5
Эта проблема также возникла, если у вас есть
yourTextField.clearButtonMode = UITextFieldViewModeNever;
Проверьте эту строку и удалите ее или измените режим просмотра.