Swift: 从未设置 UITextField 委托,或从未调用过方法
Swift: UITextField Delegate is never set, or the methods are never called
我正在尝试实现一个 UITextFieldDelegate
,它会在用户按下 return 时执行特定操作。但是,尽管我从情节提要和 viewDidLoad
方法中都设置了委托,但从未调用过委托方法。这是我的代码:
/*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
}
我想出来了……真是傻逼
只是 return true 而不是 textFieldShouldEndEditing
中的 false
我正在尝试实现一个 UITextFieldDelegate
,它会在用户按下 return 时执行特定操作。但是,尽管我从情节提要和 viewDidLoad
方法中都设置了委托,但从未调用过委托方法。这是我的代码:
/*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
}
我想出来了……真是傻逼
只是 return true 而不是 textFieldShouldEndEditing