如何解决快速防止手机键盘文本字段上的“0”第一个字符
如何防止第一个字符输入“0”,例如如果电话号码以 012345678 开头,则应防止首先输入“0”。下面是快速代码
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
}
}
确保您将 YourViewController
设置为 TextField 委托
override func viewDidLoad() {
super.viewDidLoad()
txtPhone.delegate = self
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。