2016-04-07 3 views
0

J'essaie de créer un UIAlertView qui vous permet d'écrire des commentaires mais les champs n'apparaissent pas sur AlertView. Voici le code:UIAlertView avec champ de texte ne pas afficher les champs

UIAlertView *prompt = [[UIAlertView alloc] initWithTitle:@"Your opinion" 
               message:@"Enter your comment" // IMPORTANT 
               delegate:self 
             cancelButtonTitle:@"Cancel" 
             otherButtonTitles:@"Send", nil]; 



textField = [[UITextField alloc] initWithFrame:CGRectMake(12.0, 50.0, 260.0, 25.0)]; 
[textField setBackgroundColor:[UIColor blackColor]]; 
[textField setPlaceholder:@"Name"]; 
textField.keyboardAppearance = UIKeyboardAppearanceAlert; 
textField.delegate = self; 
[prompt addSubview:textField]; 

textField2 = [[UITextField alloc] initWithFrame:CGRectMake(12.0, 85.0, 260.0, 50.0)]; 
[textField2 setBackgroundColor:[UIColor whiteColor]]; 
[textField2 setPlaceholder:@"Your comment"]; 
textField2.keyboardAppearance = UIKeyboardAppearanceAlert; 
textField2.delegate = self; 

lblCounter = [[UILabel alloc] initWithFrame:CGRectMake(100, 200, 120, 10)]; 
lblCounter.backgroundColor = [UIColor clearColor]; 
lblCounter.textColor = [UIColor whiteColor]; 
lblCounter.font = [UIFont systemFontOfSize:13.5]; 

lblCounter.text = @"0/100 characters"; 

[prompt addSubview:textField2]; 
[prompt addSubview:lblCounter]; 


[prompt show]; 

un échantillon d'image:

AlertView Sample

Quelqu'un pourrait me aider? Merci

Répondre

0

UIAlertView est obsolète depuis iOS8. En outre, il n'est pas destiné à être personnalisé de cette façon: The view hierarchy for this class is private and must not be modified. (à partir des docs).

Je suggérerais d'utiliser l'une des nombreuses bibliothèques de remplacement comme SDCAlertView ou de lancer votre propre boîte de dialogue de commentaire.

Si vous doit utiliser UIAlertView, définissez les alertViewStyle à UIAlertViewStyleLoginAndPasswordInput et de modifier le champ de texte de mot de passe pour afficher le texte en utilisant field.secureTextEntry = NO;