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

时间:2018-03-01 07:49:06

标签: ios swift uitextfield uilabel func

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

我怎么能做到?

像:

textField.text = "10"

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

Label.text = "\(textField.text) smthg" //. (10.56 smthg)

3 个答案:

答案 0 :(得分:5)

实施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中的文本。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您可以对Editing Changed

使用textField操作
@IBAction func changeText(_ sender: UITextField) {

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