当从Swift中的UITextField获取Double时,如何创建警告“错误的输入值”(由UILabel提供)?

时间:2014-12-04 16:51:36

标签: swift uitextfield uilabel

我真的需要你的帮助来解决我的问题。 我只是Swift的新手和StackOverFlow的新手,希望你们能帮助我,我真的很感谢任何支持:)

首先,我有一个想法:我通过UITextField创建一个文本字段,以捕获用户输入为Double的任何数字。但是当用户在文本字段中键入一个字符串,并点击键盘上的“完成”按钮时,文本字段旁边会显示一个标签(由UILabel提供),表示:“输入错误!请重试数字。”

所以我做了:

var amountOfWaterTextField!
var alertLabel: UILabel!

   amountOfWaterTextField = UITextField(frame: CGRect(x: 30, y: 60, width: 100, height: 30))
    amountOfWaterTextField.placeholder = "kg"
    amountOfWaterTextField.autocorrectionType = UITextAutocorrectionType.No
    amountOfWaterTextField.autocapitalizationType = UITextAutocapitalizationType.None
    amountOfWaterTextField.borderStyle = UITextBorderStyle.RoundedRect
    amountOfWaterTextField.clearButtonMode = UITextFieldViewMode.WhileEditing
    amountOfWaterTextField.returnKeyType = UIReturnKeyType.Done
    amountOfWaterTextField.delegate = self
    amountOfWaterTextField.clearsOnBeginEditing = true
    self.view.addSubview(amountOfWaterTextField)

func alertLabel() {
alertAmountWater = UILabel(frame: CGRect(x: 150, y: 60, width: 100, height: 30)); alertAmountWater.text = "Wrong input! Try again with numbers!" self.view.addSubview(alertAmountWater!)
}

//我使用textFieldShouldReturn从用户输入中获取值

func textFieldShouldReturn(textField: UITextField) -> Bool {
var amountWaterConvertable = (amountOfWaterTextField.text as NSString).doubleValue
if amountWaterConvertable != 0.0 {
if alertAmountWater != nil {
self.alertAmountWater.removeFromSuperview()}
else { resultValue = amountWaterConvertable }
} else { 
alertLabel()
}        
return true
}

//当我构建并运行时,警告标签就可以了,但是当我复制输入(两个双打或两个字符串)时,警报标签没有显示或删除。

我真的很困惑如何完成它。所以请随时帮助我。谢谢:))

0 个答案:

没有答案