这是一个示例应用,用于演示我遇到的问题:
import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var aTextField: UITextField!
@IBOutlet weak var aTextLbl: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
aTextField.delegate = self
}
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
aTextLbl.text = aTextField.text
return true
}
}
这是一个演示:
我的问题是,如何使标签与我在文本字段中键入的内容完全同步?谢谢!
答案 0 :(得分:2)
您可以使用shouldChangeCharactersIn
,而不是使用委托方法EditingChanged
。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var aTextLbl: UILabel!
@IBOutlet weak var aTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func editingChanged(_ sender: UITextField) {
aTextLbl.text = aTextField.text
}
}
答案 1 :(得分:0)
您也可以使用UITextFieldDelegate函数执行此操作。
您需要手动追加带有textField.text值的字符串,如下所示:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let currentText = txtFldPassword.text
let newText = (currentText! as NSString).replacingCharacters(in: range, with: string)
print(newText)
return true
}