gpt4 book ai didi

ios - 如何在 UIAlertController 中验证电子邮件地址?

转载 作者:行者123 更新时间:2023-11-29 05:38:16 25 4
gpt4 key购买 nike

我正在尝试设置此 UIAlertController,以便在输入正确的电子邮件地址之前“注册”按钮不会变为事件状态。 (包含@符号)。

关于如何做到这一点有什么建议吗?尝试了其他文章,但解决方案不起作用,这里是 Swift newb。

我已包含以下代码:

@IBAction func loginTapped(_ sender: UIButton) {
//The user is not logged in, so prompt for their email address
let loginAlert = UIAlertController(title: "Sign Up For LivNao", message:
"Please enter your email address to join the LivNao study",
preferredStyle: UIAlertController.Style.alert)
loginAlert.addAction(UIAlertAction(title: "Cancel", style:
UIAlertAction.Style.cancel, handler: nil))
loginAlert.addAction(UIAlertAction(title: "Sign Up", style:
UIAlertAction.Style.default, handler: {
(action: UIAlertAction) in
self.handleLogin(loginAlert)
}))
loginAlert.addTextField { (textField : UITextField) in
textField.placeholder = "Enter email"
}
loginAlert.view.setNeedsLayout()
self.present(loginAlert, animated: true, completion: nil)
}

最佳答案

看看这个。

var signUp: UIAlertAction!

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.

let loginAlert = UIAlertController(title: "Sign Up For LivNao", message: "Please enter your email address to join the LivNao study", preferredStyle: UIAlertController.Style.alert)
let cancel = UIAlertAction(title: "Cancel", style: UIAlertAction.Style.cancel, handler: nil)
loginAlert.addAction(cancel)
signUp = UIAlertAction(title: "Sign Up", style: UIAlertAction.Style.default, handler: { (action: UIAlertAction) in
//self.handleLogin(loginAlert)
})
loginAlert.addAction(signUp)
loginAlert.addTextField { (textField : UITextField) in
textField.placeholder = "Enter email"
textField.delegate = self
}

signUp.isEnabled = false
loginAlert.view.setNeedsLayout()
self.present(loginAlert, animated: true, completion: nil)

}

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool{
signUp.isEnabled = isValidEmail(testStr: textField.text!) ? true : false
return true;
}

func isValidEmail(testStr:String) -> Bool {
let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}"

let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
return emailTest.evaluate(with: testStr)
}

关于ios - 如何在 UIAlertController 中验证电子邮件地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56811078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com