Comment ajouter un Champ texte pour UIAlertController en Swift
Je suis en train de montrer un UIAlertController
avec un UITextView
. Quand j'ai ajouter la ligne:
//Add text field
alertController.addTextFieldWithConfigurationHandler { (textField) -> Void in
}
- Je obtenir un Runtime
erreur:
erreur fatale: de façon inattendue trouvé nulle, tandis que d'ôter une valeur Facultative
let alertController: UIAlertController = UIAlertController(title: "Find image", message: "Search for image", preferredStyle: .Alert)
//cancel button
let cancelAction: UIAlertAction = UIAlertAction(title: "Cancel", style: .Cancel) { action -> Void in
//cancel code
}
alertController.addAction(cancelAction)
//Create an optional action
let nextAction: UIAlertAction = UIAlertAction(title: "Search", style: .Default) { action -> Void in
let text = (alertController.textFields?.first as! UITextField).text
println("You entered \(text)")
}
alertController.addAction(nextAction)
//Add text field
alertController.addTextFieldWithConfigurationHandler { (textField) -> Void in
textField.textColor = UIColor.greenColor()
}
//Present the AlertController
presentViewController(alertController, animated: true, completion: nil)
Ce qui est présenté à l'intérieur de mon ViewController
via un IBAction
.
J'ai téléchargé le code de ici et il fonctionne très bien. J'ai copié et collé cette méthode dans mon code et il se casse. La présence de auto sur la dernière ligne n'a pas d'impact.
UITextField
, plutôt que deUITextView
?
Vous devez vous connecter pour publier un commentaire.
Swift 4
Utiliser ce code, je suis en cours d'exécution de ce code dans mon application avec succès.
Édité: Swift version 3.0
Pour ajouter un champ de texte dans Swift 3.0:
J'ai donc commencé à voir ce qui aurait pu être différent dans mon code pour le code de travail. J'ai remarqué que mon ViewController s'étend
Ce qui signifie apparemment que j'ai besoin de régler le délégué de tout enfant UITextView:
Comment ajouter un champ texte pour AlertView? Nous allons le garder court et simple.
Cela fonctionne pour Swift 3.0 et au-dessus.
Tout d'abord, vous instancier un objet de
UIAlertController
et puis vous ajoutez un champ de texte pour en accédant àaddTextField
membre deUIAlertController
classe.Solution:
Swift 4.2
Essayez les lignes suivantes et voir si cela fonctionne:
Espère que cela aide.
alertController.addTextField
correct? Il semble que "Deuxième Nom" apparaît au-dessus de "prénom".Dans Swift Xcode 4.2 et 10.1
Alerte avec deux objets textfield et Lire TextField données de texte et présent alerte sur le dessus de tous les points de vue.
Si vous voulez présenter aleert sur le dessus de tous les points de vue.
Ici de code ci-dessus, retirez cette dernière ligne
self.present(alert, animated:true, completion: nil)
et ajouter le code ci-dessous.Maintenant appeler comme ça
Pour Swift 4.0, Vous pouvez utiliser cet exemple de code avec succès testé dans mon projet:
Pour ajouter alertController avec un textField (Swift 5)
Grande réponse à une légère modification de montrer comment le champ de texte peut être utilisé:
ajouter un Champ texte pour UIAlertController et TextField de l'Affichage du texte sur UILabel dans Swift