При нажатии на текстовое поле появляется клавиатура. Как скрыть его, когда пользователь нажимает клавишу возврата?
Как скрыть клавиатуру, когда я нажимаю клавишу возврата в UITextField?
Ответ 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
}
}
Затем все, что вам нужно сделать в раскадровке, это установить поля для использования класса: