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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不使用键盘调用func textfield(...)相关的知识,希望对你有一定的参考价值。

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

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

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

    return true
}
答案

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

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

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

以上是关于不使用键盘调用func textfield(...)的主要内容,如果未能解决你的问题,请参考以下文章

没有调用 textField 代表

Qt TextField 在 Android 设备上启动时未调用键盘

ios,怎么做打开一个界面,里面的textfield自动打开键盘,提示你输入?

在 nativescript 中完成键盘后获取 TextField 文本属性

Swift:无法让 UITextField 关闭键盘

在 ScrollView 中选择 TextField(打开键盘)时 - 内容使用键盘上下跳动