[英]Swift / Xcode - How to clear a label when touching inside a textfield?
我正在创建一个简单的计算器应用程序-一切正常,但是当用户在文本字段中输入新数字(或仅触摸文本字段内部)时,我想清除结果标签。
现在,我正在使用touchesBegan函数来清除标签(这也会关闭键盘:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
self.view.endEditing(true)
resultLabel.text = ""
}
问题当然是用户在屏幕上的何处触摸都无关紧要(例如,意外地没有按下calc按钮),标签将始终被清除。
当用户触摸“ numberField”文本字段时,是否可以清除“ resultLabel”?
谢谢!
为了使结果清晰可resultlable
您需要委派委托给您提交的文本
numberField.delegate = self
设置您的UITextFieldDelegate
viewcontroller
以实现UITextFieldDelegate
将以下方法添加到您的viewcontroller
class viewcontroller: UIViewController,UITextFieldDelegate {
func textFieldDidBeginEditing(_ textField: UITextField) {
resultLabel.text = ""
}
}
您可以在用户输入数字的textField上使用文本字段Delegate方法。
textField.delegate = self
textField.tag = 0
将标签添加到您的textField中,然后在didBeginEditing中对其进行检查。
func textFieldDidBeginEditing(textField: UITextField) {
if textField.tag == 0 //Or whatever tag you attach{
//Do the required task
}
}
@IBOutlet weak var resultLabel: UILabel!
@IBOutlet weak var numberField: UITextField!
override func viewDidLoad(){
super.viewDidLoad()
numberField.delegate = self
}
extension viewcontroller: UITextFieldDelegate {
func textFieldDidBeginEditing(textField: UITextField) {
resultLabel.text = ""
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.