La UIAlertView
mise à jour a maintenant un style qui autorise un champ de saisie de texte dans UIAlertView
i.e.
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
Cela fonctionne bien, mais je voulais initier le texte d’entrée avec un texte de type "exemple".
Je vois que des gens dans le passé ont utilisé des api sans papiers comme (ce qui fonctionne très bien)
[alert addTextFieldWithValue:@"sample text" label:@"Text Field"];
mais comme ce n'est toujours pas une API publique officielle d'Apple, je ne peux pas l'utiliser.
Un autre moyen de gérer ça? J'ai essayé d'initialiser dans willPresentAlertView
mais le champ de texte semble être en lecture seule.
Merci
La variable UIALertView
a une méthode textFieldAtIndex:
qui renvoie l'objet UITextField
souhaité.
Pour un UIAlertViewStylePlainTextInput
, l'index du champ de texte est 0.
Vous pouvez ensuite définir la propriété placeholder (ou text) du champ de texte:
UIAlertView *alert = ....
UITextField *textField = [alert textFieldAtIndex:0];
textField.placeholder = @"your text";
Moyen facile de faire
UIAlertView *alerView = [[UIAlertView alloc] initWithTitle:@"your title" message:@"your message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
alerView.alertViewStyle = UIAlertViewStylePlainTextInput;
[[alerView textFieldAtIndex:0] setPlaceholder:@"placeholder text..."];
[alerView show];
Non testé, mais je suppose que cela fonctionnerait:
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:...];
UITextField* textField = [alert textFieldAtIndex:0];
textField.text = @"sample";
[alert show];
Pour définir la valeur par défaut dans uiAlertView, cela fonctionnera.
UIAlertView *alert = ....
UITextField *textField = [alert textFieldAtIndex:0];
[textField setText:@"My default text"];
[alert show];
- (IBAction)showMessage:(id)sender {
UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Add New Category"
message:nil
delegate:self
cancelButtonTitle:@"Add"
otherButtonTitles:@"Cancel", nil];
[message setAlertViewStyle:UIAlertViewStylePlainTextInput];
[message show];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSString *title = [alertView buttonTitleAtIndex:buttonIndex];
if([title isEqualToString:@"Add"])
{
UITextField *username = [alertView textFieldAtIndex:0];
NSLog(@"Category Name: %@", username.text);
}
}