Подтвердить что ты не робот

Нажмите на кнопку очистки UITextField скрывает клавиатуру вместо очистки текста

В iPhone у меня есть вид, который имеет UITextField. Когда я нажимаю кнопку очистки UITextField, клавиатура закрывается вместо очистки текста в UITextField. На iPad он работает правильно. Что я могу сделать, чтобы это исправить?

4b9b3361

Ответ 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;

Проверьте эту строку и удалите ее или измените режим просмотра.