我要检查用户是否对字段内容进行了更改:
override func viewDidLoad() {
super.viewDidLoad()
field1.addTarget(self, action: #selector(textFieldDidChange), for: .editingChanged)
field2.addTarget(self, action: #selector(textFieldDidChange), for: .editingChanged)
}
和
@objc func textFieldDidChange(_ textField: UITextField) {
// if user changed field1, calculate f2 = 2 * f1 and put result in field2
// else if user changed field2, calculate f1 = f1 / 2 and put result in field1
}
当用户更改内容field1时,写入field2的结果将再次触发textfieldDidChange,我显然不想发生这种情况。
有没有一种方法可以检测到如何对UITextField进行更改,即用户输入还是以编程方式进行更改?还是仅检测用户更改的方法?还是我必须自己构建它?