Vickate_实时获取输入框(textField)内容

(1)要检测文本框内容的变化,我们需要让新界面的Controller遵循一个文本协议 UITextFieldDelegate

同时在 viewDidLoad 方法内将文本框的代理设置为当前实例。

然后实现 textField 的 shouldChangeCharacters 方法就能在文本框将要变化的时候执行一些代码。

(2)但这个只是将要变化时执行,而不是变化后。比如在这个方法内打印出文本框的内容,会发现每当我们改变文本框的内容时,打印出来的是上一次的内容。

比如先输入1,打印出来是空。再输入2,文本框上是12,但打印出来却是1.

常规的方法:
(1)代理方法里面字符串替换
(2)观察者的方式

简易方法:
TextField添加事件,响应输入框的编辑事件(allEditingEvents)就可以获取最新的内容。

textfield.addTarget(self, action: #selector(textChange(_:)), for: .allEditingEvents)

@objc func textChange(_ textField: UITextField) {
        print(textfield.text ?? "")
    }

妈妈再也不用担心输入框头疼的问题了。

你可能感兴趣的:(Vickate_实时获取输入框(textField)内容)