我正在尝试实现一个UITextFieldDelegate
,它在用户按回车键时执行特定的操作。但是,尽管我从 Storyboard和 viewDidLoad 方法中设置了委托(delegate),但从未调用委托(delegate)方法。这是我的代码:
/*UITextFieldDelegate*/
@IBOutlet weak var messageTextField: UITextField!
func textFieldDidBeginEditing(textField: UITextField) { //delegate method
}
func textFieldShouldEndEditing(textField: UITextField) -> Bool { //delegate method
return false
}
func textFieldShouldReturn(textField: UITextField) -> Bool { //delegate method
textField.resignFirstResponder()
//check if message isn't empty
if let _ = textField.text?.isEmpty {
} else {
chatMessages.append(ChatMessage(message: (textField.text)!, dateSent: NSDate()))
textField.text = ""
//reload table data
tableView.reloadData()
}
return true
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
messageTextField.delegate = self
}
最佳答案
我明白了......它真的很愚蠢。
只需在 textFieldShouldEndEditing
中返回 true 而不是 false
关于ios - Swift:UITextField Delegate 从未设置,或者方法从未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31839849/