如何在返回键被击中时隐藏键盘 - 斯威夫特

ste*_*pad 9 keyboard ios swift

在返回键被击中时试图隐藏iOS键盘,但它停止并给我在图像中看到的错误.这是我正在使用的代码:

@IBOutlet weak var scoreText: UITextField!

func textFieldShouldReturn(_ scoreText: UITextField) -> Bool {
    self.view.endEditing(true)
    return false
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Mr.*_*der 31

您的问题是您没有委托textField来使用该方法.首先,您的班级必须包含UITextFieldDelegate协议:

class yourClass: UIViewController, UITextFieldDelegate { ... }
Run Code Online (Sandbox Code Playgroud)

在该viewDidLoad()方法中,还添加以下内容:

scoreText.delegate = self
Run Code Online (Sandbox Code Playgroud)

然后你必须改变这个:

func textFieldShouldReturn(_ scoreText: UITextField) -> Bool {
    self.view.endEditing(true)
    return false
}
Run Code Online (Sandbox Code Playgroud)

对此:

func textFieldShouldReturn(_ scoreText: UITextField) -> Bool {
    self.view.endEditing(true)
    return true
}
Run Code Online (Sandbox Code Playgroud)

最终代码:

class yourClass: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var scoreText: UITextField!

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

    func textFieldShouldReturn(_ scoreText: UITextField) -> Bool {
        self.view.endEditing()
        return true
    }
}
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,问题不在于textFieldShouldReturn()功能.请检查您的插座连接.


Moc*_*chi 5

尝试这个

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    textField.resignFirstResponder()
    return true
}
Run Code Online (Sandbox Code Playgroud)