7
votes

Comment désactiver le bouton ALERTVIEW dans iPhone?

J'ai une vue alerte ayant 2 boutons "OK" et "Annuler" et un champ de texte. Maintenant, je veux désactiver le bouton "OK" jusqu'à ce que l'utilisateur entrait du texte dans Textfield. Comment puis-je faire ceci? merci d'avance


0 commentaires

5 Réponses :


1
votes

Vous pouvez créer deux boutons pour OK et Annuler.Ten ajoutez ces deux sous forme de souscription dans l'UIALERTVIEW.NOW en vérifiant le texte (longueur de texte) dans le champ de texte, vous pouvez effectuer des actions actives et désactivées.


0 commentaires

0
votes

Sans connaître le contexte de votre application, ce qui suit peut ne pas s'appliquer - mais avez-vous lu le IOS Guidelines d'interface humaine ? Il semble que vous puissiez mieux trouver une alternative à UIALERTERVIEW si cela va souvent être affiché à l'utilisateur.


0 commentaires

0
votes

Pas vraiment lié à votre question, mais ne modifiez pas d'UialertView par défaut si vous ne voulez pas que votre application soit rejetée. Si je ne me trompe pas, vous ajoutez des champs de texte à l'alerteview, n'est-ce pas? Comme une vue de connexion. Vous devriez créer votre propre vue.

Ainsi, en ce qui concerne votre question, créez votre point de vue, définissez les boutons désactivés et déléguez les fichiers UitextFields. Lorsque P>

- (void)textFieldDidBeginEditing:(UITextField *)textField;


0 commentaires

38
votes

Mise à jour 2: Pour SWIFT 5.1 strong>

-(void)textFieldHasText:(NSNotification*)notification{
//inside the notification is the object property which is the textField
//we cast the object to a UITextField*
if([[(UITextField*)notification.object text] length] == 0){
//The UIAlertController has actions which are its buttons.
//You can get all the actions "buttons" from the `actions` array
//we have just one so its at index 0

[<#your alert#>.actions[0] setEnabled:NO];
}
else{

[<#your alert#>.actions[0] setEnabled:YES];
}
}


0 commentaires

4
votes

Je voulais prolonger la réponse de Ryan Forsyth en ajoutant ceci. Si vous ajoutez un style uialertview par défaut, vous pouvez obtenir une exception hors de portée si vous essayez d'accéder à un champ de texte comme aucun n'existe, vérifiez d'abord votre style de vue.

-(BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView*)alertView
{
    if(alertView.alertViewStyle == UIAlertViewStyleLoginAndPasswordInput ||
       alertView.alertViewStyle == UIAlertViewStylePlainTextInput ||
       alertView.alertViewStyle == UIAlertViewStyleSecureTextInput)
    {
        NSString* text = [[alertView textFieldAtIndex:0] text];
        return ([text length] > 0);
    }
    else if (alertView.alertViewStyle == UIAlertViewStyleDefault)
        return true;
    else
        return false;
}


0 commentaires