繁体   English   中英

Swift / Xcode-在文本框内触摸时如何清除标签?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM