Sto provando a utilizzare l'iOS 8 UIAlertController
al posto di dove avrei utilizzato uno UIAlertView
in passato. Voglio che l'utente sia in grado di inserire del testo in questo avviso e premere "OK" per elaborare il testo o "Annulla" per annullare.UIAlertController con campo di testo - premendo il pulsante di ritorno nasconde solo la tastiera, non esegue l'azione?
Ecco il codice di base:
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Change Value" message:@"Enter your new value."];
[alert addTextFieldWithConfigurationHandler:nil];
[alert addAction: [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
UITextField *textField = alert.textFields[0];
NSLog(@"text was %@", textField.text);
}]];
[alert addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
NSLog(@"Cancel pressed");
}]];
[presentingVC presentViewController:alert animated:YES completion:nil];
Con il vecchio UIAlertView
, vorrei contrassegnare con un alertViewStyle
di UIAlertViewStylePlainTextInput
. Quindi, se l'utente preme il pulsante "Invio" sulla tastiera dopo l'immissione del testo, il metodo UIAlertViewDelegate willDismissWithButtonIndex:
viene chiamato con un numero buttonIndex
(a seconda di quali tasti sono stati specificati nello UIAlertView
).
Nel nuovo UIAlertController
, se l'utente tocca i pulsanti "OK" o "Annulla", le azioni corrispondenti vengono eseguite come previsto; ma se l'utente preme semplicemente il tasto "Invio" sulla tastiera, nasconde semplicemente la tastiera, ma l'avviso rimane sullo schermo e non viene eseguita alcuna azione.
Ho pensato di configurazione del campo di testo per impostare il UITextFieldDelegate
-self
, e poi forse l'override del metodo textFieldDidReturn:
, ma anche io non so se c'è un modo per chiamare una delle azioni s' il UIAlertController
programmazione. E suona comunque un po 'disordinato/hacky. Mi manca qualcosa di ovvio?
Non riesco a trovare un modo per attivare le azioni anche programmaticamente. Che svista ... – elsurudo