UITextField - capture return button event

前端 未结 7 1151
春和景丽
春和景丽 2020-12-04 16:17

How can I detect when a user pressed \"return\" keyboard button while editing UITextField? I need to do this in order to dismiss keyboard when user pressed the \"return\" bu

相关标签:
7条回答
  • 2020-12-04 16:31

    You can now do this is storyboard using the sent event 'Did End On Exit'.

    In your view controller subclass:

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

    In your storyboard for the desired textfield:

    0 讨论(0)
  • 2020-12-04 16:31

    Swift version using UITextFieldDelegate :

    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        resignFirstResponder()
        return false
    }
    
    0 讨论(0)
  • 2020-12-04 16:39
    - (BOOL)textFieldShouldReturn:(UITextField *)textField {
        [textField resignFirstResponder];
        return NO;
    }
    

    Don't forget to set the delegate in storyboard...

    enter image description here

    0 讨论(0)
  • 2020-12-04 16:43

    SWIFT 3.0

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

    in enterPressed() function put all behaviours you're after

    func enterPressed(){
        //do something with typed text if needed
        textField.resignFirstResponder()
    }
    
    0 讨论(0)
  • 2020-12-04 16:47
    - (BOOL)textFieldShouldReturn:(UITextField *)txtField 
    {
    [txtField resignFirstResponder];
    return NO;
    }
    

    When enter button is clicked then this delegate method is called.you can capture return button from this delegate method.

    0 讨论(0)
  • 2020-12-04 16:55

    Delegation is not required, here's a one-liner:

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

    Sadly you can't directly do this in your Storyboard (you can't connect actions to the control that emits them in Storyboard), but you could do it via an intermediary action.

    0 讨论(0)
提交回复
热议问题