how to add an action on UITextField return key? how to add an action on UITextField return key? swift swift

how to add an action on UITextField return key?


Ensure "self" subscribes to UITextFieldDelegate and initialise inputText with:

self.inputText.delegate = self;

Add the following method to "self":

- (BOOL)textFieldShouldReturn:(UITextField *)textField {    if (textField == self.inputText) {        [textField resignFirstResponder];        return NO;    }    return YES;}

Or in Swift:

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


With extension style in swift 3.0

First, set up delegate for your text field.

override func viewDidLoad() {    super.viewDidLoad()    self.inputText.delegate = self}

Then conform to UITextFieldDelegate in your view controller's extension

extension YourViewController: UITextFieldDelegate {    func textFieldShouldReturn(_ textField: UITextField) -> Bool {        if textField == inputText {            textField.resignFirstResponder()            return false        }        return true    }}


While the other answers work correctly, I prefer doing the following:

In viewDidLoad(), add

self.textField.addTarget(self, action: #selector(onReturn), for: UIControl.Event.editingDidEndOnExit)

and define the function

@IBAction func onReturn() {    self.textField.resignFirstResponder()    // do whatever you want...}