如何同时更改文本字段和标签中的文本

时间:2018-01-27 16:17:45

标签: ios swift uitextfield

任何人都知道如何在textField和标签上同时写消息? 当我在textField上写消息时,我希望同时在标签上看到char,char为char ....

是否有任何UItextField委托?

2 个答案:

答案 0 :(得分:2)

尝试将监听器添加到textfeild的 editingChanged

textField.addTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingChanged)

@objc func textFieldDidChange(_ textField: UITextField) {

 yourLabel.text = textField.text

}

答案 1 :(得分:1)

我们可以采用SH_Kahn进一步展示的方法:

import UIKit


extension UILabel {
    @objc
    func input(textField: UITextField) {
        self.text = textField.text
    }
}

我们添加一个方法,其签名与添加目标机制兼容。这种方法只会获得textField的文本并将其设置为标签的文本。

class ViewController: UIViewController {

    @IBOutlet weak var outputLabel: UILabel!
    @IBOutlet weak var inputField: UITextField!
    override func viewDidLoad() {
        super.viewDidLoad()
        self.inputField.addTarget(outputLabel, action: #selector(UILabel.input(textField:)), for: .editingChanged)
    }


}

但如果我们更频繁地需要它,我们可能希望使它更容易使用:

extension UILabel {
    @objc
    func input(textField: UITextField) {
        self.text = textField.text
    }

    func connect(with textField:UITextField){
        textField.addTarget(self, action: #selector(UILabel.input(textField:)), for: .editingChanged)
    }
}


class ViewController: UIViewController {

    @IBOutlet weak var outputLabel: UILabel!
    @IBOutlet weak var inputField: UITextField!
    override func viewDidLoad() {
        super.viewDidLoad()
        outputLabel.connect(with: inputField)
    }
}