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

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

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

4b9b3361

Ответ 1

Сначала сделайте ваш файл делегатом для UITextField

@interface MYLoginViewController () <UITextFieldDelegate>

@end

Затем добавьте этот метод в свой код.

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

Также добавьте self.textField.delegate = self;

Ответ 2

В viewDidLoad объявить:

[yourTextField setDelegate:self];

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

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

Ответ 3

Попробуйте это в Swift,

Шаг 1: Установите делегата как самого себя в textField

textField.delegate = self

Шаг 2. Добавьте этот UITextFieldDelegate под объявлением класса,

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

Ответ 4

В быстрых делайте так:
Сначала в ViewController реализуем это UITextFieldDelegate Например,

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

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

override func viewDidLoad() {

    super.viewDidLoad()   
    myTextField.delegate = self
}

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

func textFieldShouldReturn(textField: UITextField) -> Bool {

    textField.resignFirstResponder()
    return true
}

Ответ 5

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

[textField resignFirstResponder];
return YES;

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

Ответ 6

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

[textField setDelegate: self];

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

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

Ответ 7

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

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

Ответ 8

Swift 4

Установите делегата UITextField в контроллере представления, 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)
    }
}

Ответ 9

[textField resignFirstResponder];

Используйте этот

Ответ 10

Хорошо, я думаю, что для новичка все может быть немного запутанным. Я думаю, что правильный ответ - это смесь всего вышеперечисленного, по крайней мере, в Swift4.

Либо создайте расширение, либо используйте ViewController, в котором вы хотели бы использовать это, но обязательно реализуйте UITextFieldDelegate. Для повторного использования я нашел, что проще использовать расширение:

extension UIViewController : UITextFieldDelegate {
    ...
}

но альтернатива также работает:

class MyViewController: UIViewController {
    ...
}

Добавьте метод textFieldShouldReturn (в зависимости от вашего предыдущего варианта, либо в расширении, либо в вашем ViewController)

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    return textField.endEditing(false)
}

В вашем методе viewDidLoad установите для делегата текстового поля значение self

@IBOutlet weak var myTextField: UITextField!
...

override func viewDidLoad() {
    ..
    myTextField.delegte = self;
    ..
}

Это должно быть все. Теперь, когда вы нажимаете return, должен вызываться textFieldShouldReturn.

Ответ 11

Определите этот класс, а затем настройте текстовое поле на использование класса, и это автоматически автоматизирует скрытую клавиатуру при автоматическом нажатии клавиши return.

class TextFieldWithReturn: UITextField, UITextFieldDelegate
{

    required init?(coder aDecoder: NSCoder) 
    {
        super.init(coder: aDecoder)
        self.delegate = self
    }

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

}

Затем все, что вам нужно сделать в раскадровке, это установить поля для использования класса:

enter image description here