检测UITextField的更改而不触发相关字段中的另一个

时间:2018-10-12 03:17:17

标签: ios swift

我要检查用户是否对字段内容进行了更改:

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进行更改,即用户输入还是以编程方式进行更改?还是仅检测用户更改的方法?还是我必须自己构建它?

0 个答案:

没有答案