J'ai un alertview qui affiche un champ de texte que l'utilisateur doit entrer comme obligatoire. Le problème est que si l'utilisateur clique sur "Autoriser" sans l'entrer, l'alerte est rejetée. Je n'arrive pas à trouver une façon de montrer à l'utilisateur que c'est obligatoire sans rejeter le alertview.Y at-il un moyen de fournir une validation dans le champ de texte qui est à l'intérieur de alertview en utilisant swift
code:
func tableView (tableView: UITableView !, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
print("You selected cell #\(self.empNameArr[indexPath.row])!")
let alertController = UIAlertController(title: "OD Authorise", message: "", preferredStyle: UIAlertControllerStyle.Alert)
let AUTHORISE = UIAlertAction(title: "AUTHORISE", style: UIAlertActionStyle.Default, handler: {
alert -> Void in
let firstTextField = alertController.textFields![3] as UITextField
print("<><><><><><>",firstTextField.text)
})
let DENY = UIAlertAction(title: "DENY", style: UIAlertActionStyle.Default, handler: {
(action : UIAlertAction!) -> Void in
})
let CANCEL = UIAlertAction(title: "CANCEL", style: UIAlertActionStyle.Default, handler: {
(action : UIAlertAction!) -> Void in
})
alertController.addTextFieldWithConfigurationHandler { (txtRemarks : UITextField!) -> Void in
txtRemarks.font = UIFont(name: (txtRemarks.font?.fontName)!, size: 11)
txtRemarks.text = " Employee Name :\(self.empNameArr[indexPath.row]) "
txtRemarks.userInteractionEnabled=false
txtRemarks.borderStyle = UITextBorderStyle.None
}
alertController.addTextFieldWithConfigurationHandler { (txtRemarks : UITextField!) -> Void in
txtRemarks.font = UIFont(name: (txtRemarks.font?.fontName)!, size: 11)
txtRemarks.text = " From Date :\(self.leavDateArr[indexPath.row]) "
txtRemarks.userInteractionEnabled=false
txtRemarks.borderStyle = UITextBorderStyle.None
}
alertController.addTextFieldWithConfigurationHandler { (txtRemarks : UITextField!) -> Void in
txtRemarks.font = UIFont(name: (txtRemarks.font?.fontName)!, size: 11)
txtRemarks.text = " To Date :\(self.ToDate[indexPath.row]) "
txtRemarks.userInteractionEnabled=false
txtRemarks.borderStyle = UITextBorderStyle.None
}
alertController.addTextFieldWithConfigurationHandler { (txtRemarks : UITextField!) -> Void in
txtRemarks.font = UIFont(name: (txtRemarks.font?.fontName)!, size: 11)
txtRemarks.text = " Leave reason :\(self.Reason[indexPath.row]) "
txtRemarks.userInteractionEnabled=false
txtRemarks.borderStyle = UITextBorderStyle.None
}
alertController.addTextFieldWithConfigurationHandler { (txtRemarks : UITextField!) -> Void in
txtRemarks.placeholder = "Enter Your Remarks"
txtRemarks.font = UIFont(name: (txtRemarks.font?.fontName)!, size: 15)
txtRemarks.userInteractionEnabled=true
txtRemarks.borderStyle = UITextBorderStyle.Line
txtRemarks.textAlignment = NSTextAlignment.Center
}
alertController.addAction(AUTHORISE)
alertController.addAction(DENY)
alertController.addAction(CANCEL)
self.presentViewController(alertController, animated: true, completion: nil)
}
Vous pouvez d'abord désactiver les boutons et implémenter la méthode de délégation de champs de texte pour vérifier quand activer les boutons. – Sahil