如何将输入的数据从 UITextField 永久显示到 Label?
How to show entered data from UITextField to Label permanently?
我正在尝试创建一个功能,当用户在 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
操作 textField
@IBAction func changeText(_ sender: UITextField) {
Label.text = "\(textField.text) smthg"
}
我正在尝试创建一个功能,当用户在 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
操作 textField
@IBAction func changeText(_ sender: UITextField) {
Label.text = "\(textField.text) smthg"
}