Как скрыть клавиатуру, когда я нажимаю клавишу return в UITextField?

щелчок в текстовом поле заставляет клавиатуру появиться. Как скрыть его, когда пользователь нажимает клавишу return?

9 ответов


сначала создайте делегат файла для UITextField, а затем добавьте этот метод в свой код ..

-(BOOL) textFieldShouldReturn:(UITextField *)textField{

    [textField resignFirstResponder];
    return YES;
}

на viewDidLoad объявить:

[yourTextField setDelegate:self];

затем включите переопределение метода делегата:

-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
    return YES;
}

в swift сделайте так:
Первый в вашем ViewController реализовать этот UITextFieldDelegate Для EG.

class MyViewController: UIViewController, UITextFieldDelegate {
....
}

теперь добавьте делегата в TextField в котором вы хотите уволить клавиатуру, когда return нажата либо в viewDidLoad метод, как показано ниже или где вы его инициализации. Для EG.

override func viewDidLoad() {

    super.viewDidLoad()   
    myTextField.delegate = self
}

теперь добавьте этот метод.

func textFieldShouldReturn(textField: UITextField) -> Bool {

    textField.resignFirstResponder()
    return true
}

попробуем Свифт,

Шаг 1: установить делегат как self для вашего textField

textField.delegate = self

Шаг 2: добавьте этот UITextFieldDelegate ниже объявления класса,

extension YourClassName: UITextFieldDelegate {
    func textFieldShouldReturn(textField: UITextField) -> Bool {
         textField.resignFirstResponder()
        return true
    }
}

набор делегата UITextField, и за поездку, textFieldShouldReturn метод, в этом методе просто написать следующие две строки:

[textField resignFirstResponder];
return YES;

вот и все. Перед написанием кода не забудьте установить делегат a UITextField и установите тип ключа возврата в "готово" из окна свойств.(команда + shift + I).


вы можете подключить "первичное действие срабатывает" (щелкните правой кнопкой мыши на UITextField) с IBAction, и вы можете отказаться от первого ответчика (без делегирования). Образец (Swift 4):

@IBAction func textFieldPrimaryAction(_ sender: UITextField) {
    sender.resignFirstResponder()
    ...
}

попробуйте это,

[textField setDelegate: self];

затем в методе делегата textField

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return YES;
}

[textField resignFirstResponder];

использовать


Swift 4

установить делегат UITextField in view controller,field.delegate = self и затем:

extension ViewController: UITextFieldDelegate {
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        // don't force `endEditing` if you want to be asked for resigning
        // also return real flow value, not strict, like: true / false
        return textField.endEditing(false)
    }
}