不使用键盘调用func textfield(...)

问题描述 投票:0回答:1

我有一个更改文本字段值的按钮。我如何得到它也执行textField函数,就像在文本字段中键入值一样?

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

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

    return true
}
ios swift uitextfield
1个回答
1
投票

你没有。此委托方法仅作为用户类型调用。如果您明确设置文本字段的text属性,则永远不会调用它。这是一件好事。在text委托方法中设置文本字段的shouldChangeCharactersIn并不罕见。如果设置文本导致调用委托方法,则最终会导致无限递归。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.