如何永久地显示从UITextField输入的数据到标签?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何永久地显示从UITextField输入的数据到标签?相关的知识,希望对你有一定的参考价值。

我正在尝试创建一个函数,当用户在UITextField中输入文本时,标签显示输入的文本。

我该怎么做?

喜欢:


textField.text = "10"

Label.text = "(textField.text) smthg" //. (10 smthg)

textField.text = "10.56"

Label.text = "(textField.text) smthg" //. (10.56 smthg)
答案

实施UITextFieldDelegate并将其设置为textField.delegate属性。从UITextFieldDelegate实现shouldChangeCharactersIn回调方法,每次用户尝试更改文本字段中的输入时都会调用该方法:

class MyViewController: UIViewController {

    ...

    func viewDidLoad() {
        super.viewDidLoad()

        // set the textField's delegate to self
        textField.delegate = self
    }

}

extension MyViewController: UITextFieldDelegate {
    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
        // to be always updated, you cannot use textField.text directly, because after this method gets called, the textField.text will be changed
        let newStringInTextField = (textField.text as NSString?)?.replacingCharacters(in: range, with: string)
        yourLabel.text = "(newStringInTextField) smthg"
        return true
    }
}

使用函数的参数,您可以获得一个将出现在textField中的字符串,您可以将其设置为yourLabel中的文本。

另一答案

你需要实现textfield的委托方法shouldChangeCharactersIn,当用户开始输入时会调用它,从文本字段中删除一个字符,当文本字段中有文本时点击文本字段右侧出现的清除按钮。

另一答案

你可以使用Editing Changed Action为那个textField

@IBAction func changeText(_ sender: UITextField) {

     Label.text = "(textField.text) smthg"
}

以上是关于如何永久地显示从UITextField输入的数据到标签?的主要内容,如果未能解决你的问题,请参考以下文章

单击已显示键盘的第二个UITextField会错误地移动内容

当用户在 iPhone App 的 UITextField 中输入值时,如何显示特定语言键盘?

UITextField 显示格式为没有小数的货币

从输入标记永久保存数据中的数据

如何更好地限制一个UITextField的输入长度

如何更好地限制一个UITextField的输入长度