J'essaye de montrer un UIAlertController
avec un UITextView
. Quand j'ajoute la ligne:
//Add text field
alertController.addTextFieldWithConfigurationHandler { (textField) -> Void in
}
J'obtiens une Runtime
erreur:
erreur fatale: inopinément trouvé nul lors du déballage d'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)
Ceci est présenté dans mon ViewController
via un fichier IBAction
.
J'ai téléchargé le code à partir d' ici et cela fonctionne très bien. J'ai copié et collé cette méthode dans mon code et ça casse. La présence de soi sur la dernière ligne n'a aucun impact.
ios
swift
uitextfield
uialertcontroller
Quintin Balsdon
la source
la source
UITextField
, plutôt queUITextView
?Réponses:
Swift 5.1
Utilisez ce code, j'exécute ce code dans mon application avec succès.
Édité: version Swift 3.0
la source
Pour ajouter un champ de texte dans Swift 3.0:
la source
J'ai donc commencé à vérifier ce qui aurait pu être différent dans mon code du code de travail. J'ai remarqué que mon ViewController s'étend
Ce qui signifie apparemment que je dois définir le délégué de tout enfant UITextView:
la source
Solution:
Swift 4.2
Essayez les lignes suivantes et voyez si cela fonctionne:
J'espère que ça aide.
la source
alertController.addTextField
correct? Il semble que "Second Name" apparaisse au-dessus de "First Name".Comment ajouter textField à AlertView? Gardons les choses simples et courtes.
Cela fonctionne pour Swift 3.0 et supérieur.
Tout d'abord, vous instanciez un objet de
UIAlertController
, puis vous lui ajoutez un champ de texte en accédant auaddTextField
membre de laUIAlertController
classe.la source
Pour ajouter alertController avec un textField (Swift 5)
la source
Pour Swift 4.0, vous pouvez utiliser cet exemple de code testé avec succès dans mon projet:
la source
Dans Swift 4.2 et Xcode 10.1
Alerte avec deux Textfields et Lire les données textuelles TextField et présenter l'alerte au-dessus de toutes les vues .
Si vous souhaitez présenter aleert au-dessus de toutes les vues.
Ici, à partir du code ci-dessus, supprimez cette dernière ligne
self.present(alert, animated:true, completion: nil)
et ajoutez le code ci-dessous.Maintenant appelle comme ça
la source
Excellente réponse à une légère modification pour montrer comment le champ de texte peut être utilisé:
la source
ajouter TextField à UIAlertController et TextField affichage de texte sur UILabel dans Swift
la source
UIAlertController
avec laUITextfield
dernière version d'Apple Swift 5.1.3Créez une
lazy
variable deUIAlertController
dans votreUIViewController
, AddUITextFieldDelegate
, Show Alert onUIButton
Action :Bon codage !! :)
la source
Swift5
La première classe est conforme à UITextFieldDelegate, puis crée une nouvelle propriété textField
Merci
la source
Swift 5
la source