how to add an action on UITextField return key?

前端 未结 4 1414
孤独总比滥情好
孤独总比滥情好 2020-12-13 01:38

I have a button and text textfield in my view. when i click on the textfield a keyboard appears and i can write on the textfield and i also able to dismiss the keyboard by c

相关标签:
4条回答
  • 2020-12-13 01:50

    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...
    }
    
    0 讨论(0)
  • 2020-12-13 01:57

    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
    }
    
    0 讨论(0)
  • 2020-12-13 01:59

    Use Target-Action UIKit mechanism for "primaryActionTriggered" UIEvent sent from UITextField when a keyboard done button is tapped.

    textField.addTarget(self, action: Selector("actionMethodName"), for: .primaryActionTriggered)
    
    0 讨论(0)
  • 2020-12-13 02:09

    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
        }
    }
    
    0 讨论(0)
提交回复
热议问题