单击键盘上的 "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
}
我试图通过单击 "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
}