单击键盘上的 "Done" 以关闭键盘,但不会关闭

Clicking "Done" on keyboard to dismiss keyboard, but it will not be dismissed

我试图通过单击 "Done" 按钮关闭键盘,但它不会被关闭。这是我到目前为止所做的:

我还添加了协议UITextFieldDelegate

override func viewDidLoad() {
    super.viewDidLoad()

    texts.layer.cornerRadius = 10
    texts.delegate = self
    texts.keyboardType = .numbersAndPunctuation
    texts.returnKeyType = .done
}

func textFieldShouldReturn(textField: UITextField!) -> Bool {   //delegate method
    var number = CGFloat((texts.text! as NSString).floatValue)

    slide.setValue(Float(number), animated: true)

    textField.resignFirstResponder()

    return true
}

我希望它关闭,以便输入的值可以存储在 number 变量中,应用程序可以继续。

很可能您的 textFieldShowReturn 没有被调用,因为它有错误的签名。快速使用调试器(或 print 语句)将确认。

应该是:

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    // your code here
}

注意参数标签的 _

.endEditing 设置为 true 应该可以解决问题

func textFieldShouldReturn(_ textfield: UITextField) -> Bool {
    self.view.endEditing(true)
    return false
}