Ios 不使用键盘调用func textfield(…)

Ios 不使用键盘调用func textfield(…),ios,swift,uitextfield,Ios,Swift,Uitextfield,我有一个按钮,可以更改文本字段的值。 我如何让它也执行下面的textField函数,就好像值是在文本字段中键入的一样 此功能仅在使用键盘打字时有效。我还需要在不使用键盘的情况下调用它 func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { print("some actions her")

我有一个按钮,可以更改文本字段的值。 我如何让它也执行下面的textField函数,就好像值是在文本字段中键入的一样

此功能仅在使用键盘打字时有效。我还需要在不使用键盘的情况下调用它

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    print("some actions her")

    return true
}

你没有。此委托方法仅在用户类型为时调用。如果显式设置文本字段的
text
属性,则永远不会调用它。这是件好事。在委托方法中的
shouldchangeCharacters中设置文本字段的
text
并不少见。如果设置文本导致调用委托方法,那么最终可能会出现无限递归

由于代码显式地设置了文本,因此不需要调用委托。只需将文本设置为所需的值


如果存在格式化文本或其他处理的逻辑,将该逻辑放在另一个函数中,然后您可以从两个位置调用该函数-从
shouldChangeCharactersIn
和从您设置文本字段文本的任何位置调用该函数。

基本上从不调用包含
will/did/should
的系统委托方法。