swift4中textfield的值为0时如何显示提示?

时间:2018-11-28 13:40:18

标签: ios swift uitextfielddelegate

我想在文本字段的值为0时显示警报。 但是,在文本字段中输入值0不会显示警报。

我该如何解决问题?

@IBOutlet var priceTextfield: UITextField!

if Int(priceTextfield.text!) == 0 {

   let aert = UIAlertController(title: "OK", message: "Price must be greater than 0.", preferredStyle: .alert)
   let ok = UIAlertAction(title: "OK", style: .default)
   alert.addAction(OK)

   self.present(alert, animated: false)
}

2 个答案:

答案 0 :(得分:1)

您应该处理此textFieldShouldEndEditing委托。

func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
    if Double(textField.text!) == 0 {
        // Show alert
        return false
    }
    return true
}

注意:您的视图控制器需要符合UITextFieldDelegate,并且必须设置文本字段委托。

class YourViewController: UIViewController, UITextFieldDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

        priceTextfield.delegate = self
    }

}

答案 1 :(得分:1)

   func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {

    if textField.text.count > 1 {
     if let value = Int(textField.text), value == 0 { // Convert string to Int
                    // Show alert
         }
       }

     return true
  }