Вопрос

Как я могу определить, когда пользователь нажал кнопку «возврат» на клавиатуре при редактировании UITextField?Мне нужно сделать это, чтобы отключить клавиатуру, когда пользователь нажал кнопку «возврат».

Спасибо.

Это было полезно?

Решение

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

Не забудьте установить делегата в раскадровке...

enter image description here

Другие советы

Делегирование не требуется, вот одна строка:

- (void)viewDidLoad {
    [textField addTarget:textField
                  action:@selector(resignFirstResponder)
        forControlEvents:UIControlEventEditingDidEndOnExit];
}

К сожалению, вы не можете сделать это напрямую в раскадровке (вы не можете связать действия с элементом управления, который их генерирует в раскадровке), но вы можете сделать это с помощью промежуточного действия.

СВИФТ 3.0

override open func viewDidLoad() {
    super.viewDidLoad()    
    textField.addTarget(self, action: #selector(enterPressed), for: .editingDidEndOnExit)
}

в функции enterPressed() поместите все поведение, которое вам нужно

func enterPressed(){
    //do something with typed text if needed
    textField.resignFirstResponder()
}

Теперь вы можете сделать это с помощью раскадровки, используя отправленное событие «Did End On Exit».

В вашем подклассе контроллера представления:

 @IBAction func textFieldDidEndOnExit(textField: UITextField) {
    textField.resignFirstResponder()
}

В раскадровке для нужного текстового поля:

enter image description here

Версия Swift с использованием UITextFieldDelegate:

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    resignFirstResponder()
    return false
}
- (BOOL)textFieldShouldReturn:(UITextField *)txtField 
{
[txtField resignFirstResponder];
return NO;
}

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top