使用.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方法仅允许将事件通知给单个目标。

如果您只有一个目标,并且还实现了其他委托方法,则只需使用委托方法。

如果需要多个目标来了解事件,则需要使用addTarget

关于ios - iOS UITextField addTarget和textFieldDidEndEditing之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53011672/

10-10 20:38