iOS UITextField addTarget 和 textFieldDidEndEditing 的区别
iOS UITextField difference between addTarget and textFieldDidEndEditing
使用 .editingDidEnd
选项添加目标和 textFieldDidEndEditing
方法有什么区别?
@IBOutlet weak var textField: UITextField! {
didSet {
// check when textField editing ends
textField.addTarget(self,
action: #selector(titleDidChange(_:)),
for: .editingDidEnd)
}
}
VS.
func textFieldDidEndEditing(_ textField: UITextField) {
// user has resigned responder
}
最后的结果是一样的。当文本字段不再是第一响应者时,两者都会被调用。
但是使用addTarget
允许多个目标被通知事件,而使用delegate
方法只允许单个目标被通知事件。
如果你只有一个target,而且你还实现了其他委托方法,那就直接使用委托方法。
如果您需要多个目标来了解事件,那么您需要使用addTarget
。
使用 .editingDidEnd
选项添加目标和 textFieldDidEndEditing
方法有什么区别?
@IBOutlet weak var textField: UITextField! {
didSet {
// check when textField editing ends
textField.addTarget(self,
action: #selector(titleDidChange(_:)),
for: .editingDidEnd)
}
}
VS.
func textFieldDidEndEditing(_ textField: UITextField) {
// user has resigned responder
}
最后的结果是一样的。当文本字段不再是第一响应者时,两者都会被调用。
但是使用addTarget
允许多个目标被通知事件,而使用delegate
方法只允许单个目标被通知事件。
如果你只有一个target,而且你还实现了其他委托方法,那就直接使用委托方法。
如果您需要多个目标来了解事件,那么您需要使用addTarget
。