我真的需要你的帮助来解决我的问题。 我只是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
}
//当我构建并运行时,警告标签就可以了,但是当我复制输入(两个双打或两个字符串)时,警报标签没有显示或删除。
我真的很困惑如何完成它。所以请随时帮助我。谢谢:))