防止swift中电话键盘文本字段的第一个字符为“0”

防止swift中电话键盘文本字段的第一个字符为“0”,swift,uitextfield,Swift,Uitextfield,如何防止第一个字符为0,例如,如果电话号码以012345678开头,则应防止首先键入0。下面是swift代码 class LoginVC: UIViewController { var isShowFilter = false @IBOutlet weak var txtPhone: UITextField! @IBOutlet weak var txtPassword: UITextField! @IBOutlet weak var btnLogin: Theme

如何防止第一个字符为0,例如,如果电话号码以012345678开头,则应防止首先键入0。下面是swift代码

class LoginVC: UIViewController {   
var isShowFilter = false
    @IBOutlet weak var txtPhone: UITextField!
    @IBOutlet weak var txtPassword: UITextField!
    @IBOutlet weak var btnLogin: ThemeButton!
    func validateView() -> Bool{
       if (self.txtPhone.text?.isEmpty)!{
            GFunctions.ShowAlert(message: StringIdentifier.EnterPhone.rawValue)
            return false
        }
       else if ((self.txtPhone.text?.starts(with: "0")) != nil){
        GFunctions.ShowAlert(message: StringIdentifier.NoEnterZero.rawValue) //Here want to show toast message if user put 0 at first
        return false
       }
       else if (self.txtPassword.text?.isEmpty)!{
            GFunctions.ShowAlert(message: StringIdentifier.EnterPassword.rawValue)
            return false
       }else if (self.txtPassword.text?.count)! < 6 {
            GFunctions.ShowAlert(message: StringIdentifier.ValidPassword.rawValue)
            return false
        }else{
            return true
        }
    }   
    @IBAction func btnLoginTapped(_ sender: UIButton) {
        if validateView(){
            isShowFilter = true
            self.APICallLogin()
        }
    }
    override func viewDidLoad() {
        super.viewDidLoad()
}

enum StringIdentifier : String{
case NoEnterZero                   = "Do not start with 0"
}

简单实现TextField委托

extension LoginVC: UITextFieldDelegate {
    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
        if range.location == 0 && string == "0" {
            return false
        }
        return true
    }
}
override func viewDidLoad() {
     super.viewDidLoad()
     txtPhone.delegate = self
}
确保将ViewController设置为TextField委托

extension LoginVC: UITextFieldDelegate {
    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
        if range.location == 0 && string == "0" {
            return false
        }
        return true
    }
}
override func viewDidLoad() {
     super.viewDidLoad()
     txtPhone.delegate = self
}

注册到相关的UITextfile委托方法,然后尝试以下操作