我是使用Swift的初学者程序员。我一直在做一个待办事项清单应用程序。我试图通过回车键关闭键盘。我尝试了'self.view.endEditing(true)'和'resignFirstResponder()'方法,但是它们都不起作用。这是我的代码:(我正在使用Tab应用程序)
class SecondViewController: UIViewController, UITextFieldDelegate {
@IBOutlet var text: UITextField!
@IBAction func addItem(sender: AnyObject) {
toDoList.append(text.text)
text.text = ""
self.view.endEditing(true)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
self.view.endEditing(true) // This works fine here
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
self.view.endEditing(true) // This is not working...
return true
}
}
在最后一个函数中,我还尝试使用以下命令:
func textFieldShouldReturn(textField: UITextField) -> Bool {
text.resignFirstResponder() // This is not working...
return true
}
但是由于某种原因,没人能按照我的意愿工作。当我在'touchesBegan'方法中使用它时,它可以正常工作。您能告诉我我的代码有什么错误吗?谢谢。
最佳答案
尝试设置委托。将didSet添加到文本出口。像这样。
@IBOutlet var text: UITextField! {
didSet {
text.delegate = self
}
}