6 votes

Changer le type de clavier de UITextField dans UIAlertView

J'ai créé un UIAlertView avec son alertViewStyle fixé à UIAlertViewStylePlainTextInput .

Je veux changer le type de clavier, mais pas en ajoutant une sous-vue.

Mon code

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"a" message:@"b" delegate:nil cancelButtonTitle:@"cancel" otherButtonTitles:@"aaa", nil];
alert.alertViewStyle = UIAlertViewStylePlainTextInput;  
[alert show];

44voto

nsgulliver Points 8019

Si vous voulez présenter le style d'entrée, mettez tout d'abord en œuvre la fonction UIAlertViewDelegate dans votre classe.

Deuxièmement, lorsque vous présentez la fenêtre d'alerte, définissez le délégué à self.

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"a" message:@"b" delegate:self cancelButtonTitle:@"cancel" otherButtonTitles:@"aaa", nil];
alert.alertViewStyle = UIAlertViewStylePlainTextInput;  
[alert show];'

Si vous souhaitez modifier le type de clavier pour un champ particulier, procédez comme suit

Par exemple pour le 1er champ, cela rendra le clavier numérique.

[[alert textFieldAtIndex:0] setKeyboardType:UIKeyboardTypeNumberPad];
[[alert textFieldAtIndex:0] becomeFirstResponder];

MISE À JOUR pour iOS 8.0 Swift

À partir d'ios 8.0 UIAlertView est obsolète, vous devrez donc peut-être utiliser UIAlertController

 var alert = UIAlertController(title: "Title", message: "Your msg", 
                preferredStyle: UIAlertControllerStyle.Alert)

        alert.addAction(UIAlertAction(title: "Close", style: UIAlertActionStyle.Cancel, 
              handler:yourHandler))

        alert.addTextFieldWithConfigurationHandler({(textField: UITextField!) in
            textField.placeholder = "Password"
            textField.secureTextEntry = true  // setting the secured text for using password
            textField.keyboardType = UIKeyboardType.Default
        })

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X