Bonjour tout le monde,
J’essaye d’utiliser une UIAlertController avec un champ texte pour ajouter des données dans une TableView, ça fonctionne plutôt bien, mais au moment de l’ajout d’une donnée, je fais une vérification pour que celle-ci ne soit pas déjà présente dans la TableView et si c’est le cas, j’aimerai afficher un message d’erreur. J’ai essayé d’afficher le message d’erreur directement dans mon AlertController, mais après appui sur bouton, celui-ci se ferme automatiquement… Pour contrer ça, j’ouvre un nouvel AlertController avec le message d’erreur.
Je me demandais s’il était possible d’afficher un message d’erreur directement dans la même AlertController sans le fermer, ou si faire comme j’ai fais était une meilleur solution ?
En fait, pour ajouter des données dans ma TableView, j’hésite entre quelque comme:
ou:
Le problème étant qu’avec la première solution, le clavier recouvre mes boutons… Histoire que cela ne pose pas de soucis, au clic autre part sur l’écran, ça enlève le clavier, mais du coup, l’utilisateur ne voit pas directement les boutons… Et c’est quelque chose qui me dérange… Vos avis?
Merci,
Alexandre
Hello,
Ça dépend de la longueur du texte que tu as à taper, ce qui est un peu le problème de l’AlertController. Si c’est un long texte, ce n’est pas adapté à ton contexte.
Sinon, pour la première solution, tu peux aussi remonter les boutons juste au-dessus du clavier pour qu’ils soient visibles lors de la saisie ou alors tu peux même intégrer les boutons à la fenêtre du clavier qui s’ouvre genre quelque chose comme ça.
Mmh, merci pour ta réponse.
Dans le contexte actuel, ce serait des petits textes (nom ou prénom généralement), donc je pense que je vais garder l’alertController, mais si j’ai besoin de rentrer du texte plus grand, alors je passerai comme tu le dis en remontant les boutons, ou en les attachant au dessus du clavier.
Merci du retour des possibilités
Pour tous les pb de clavier qui recouvrent les controles, vous avez cette lib qui gère cela parfaitement :
Une ligne à ajouter et c’est terminé
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
**IQKeyboardManager.sharedManager().enable = true**
return true
}
}
2 « J'aime »