限制UITextField在不使用UITextField委托的情况下输入0作为第一个字符



我试图通过对textField对象(如myTextField.editingChanged (执行操作来实现此功能

我知道使用textField的委托方法可以很容易地做到这一点

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if string == "0" {
if textField.text!.count == 0 {
return false
}
return true
}
}

但我需要在自定义方法中这样做,并将其作为目标添加到textField中。肯定有办法。

您可以在类似的文本字段上添加观察者

NotificationCenter.default.addObserver(self, selector: #selector(textFieldDidChangeText), name: UITextField.textDidChangeNotification, object: nil)

并在下面的函数中提供您的自定义实现

@objc func textFieldDidChangeText(_ textField: UITextField) { ... }

也不要忘记删除观察者。

最新更新