Change 'Return' button function to 'Done' in swift in UITextView

前端 未结 4 2033
夕颜
夕颜 2021-01-30 10:50

I would like to get rid of the \"return\" function of the keyboard while the user is typing, so there are no new lines, so instead I would like the \'return\' key to function as

4条回答
  •  慢半拍i
    慢半拍i (楼主)
    2021-01-30 11:07

    I have tried many codes and finally this worked for me in Swift 3.0 Latest [April 2019] this achieved using UITextFields

    The "ViewController" class should be inherited the "UITextFieldDelegate" for making this code working.

    class ViewController: UIViewController,UITextFieldDelegate  
    

    Add the Text field with the Proper Tag number and this tag number is used to take the control to appropriate text field based on incremental tag number assigned to it.

    override func viewDidLoad() {
    
        userNameTextField.delegate = self
        userNameTextField.tag = 0
        userNameTextField.returnKeyType = .next
        passwordTextField.delegate = self
        passwordTextField.tag = 1
        passwordTextField.returnKeyType = .go
    }
    

    In the above code, the "returnKeyType = UIReturnKeyType.next" where will make the Key pad return key to display as "Next" you also have other options as "Join/Go" etc, based on your application change the values.

    This "textFieldShouldReturn" is a method of UITextFieldDelegate controlled and here we have next field selection based on the Tag value incrementation.

    func textFieldShouldReturn(_ textField: UITextField) -> Bool
    {
        if let nextField = textField.superview?.viewWithTag(textField.tag + 1) as? UITextField {
            nextField.becomeFirstResponder()
        } else {
            textField.resignFirstResponder()
            return true;
        }
        return false
    }
    

提交回复
热议问题