Con il rilascio della SDK iOS 5, la classe UIAlertView è stata aggiornata per supportare nativamente immissione del testo, inserimento di testo sicuro, e username / password. Questo piccolo trucco mostrerà come trarre vantaggio da questi nuovi miglioramenti!
Introduciamo gli AlertView Styles
Gli elementi di layout e la forma di un UIAlertView ora possono essere facilmente e rapidamente essere controllati impostando la proprietà alertViewStyle. Le opzioni possibili per questa proprietà sono:
UIAlertViewStylePlainTextInput
Questo stile aggiunge un singolo campo di testo nell’AlerView.
UIAlertViewStyleSecureTextInput
Questo stile è uguale al plainTextInput eccetto che tutti i caratteri inseriti sono oscurati.
UIAlertViewStyleLoginAndPasswordInput
Impostando questo tipo di stile verranno aggiunti un campo per l’input del testo tipo username ed un campo oscurato per la password.
UIAlertViewStyleDefault
Questo è lo stile standard che tutti conosciamo e amiamo.
Implementazione
Ognuno di questi stili appena visti è molto semplice da implementare, infatti basta impostare la proprietà alertViewStyle del nostro UIAlertView:
[code lang=”obj-c”]message.alertViewStyle = UIAlertViewStylePlainTextInput;[/code]
oppure semplicemente impostando il metodo setter:
[code lang=”obj-c”]message.alertViewStyle = UIAlertViewStylePlainTextInput;[/code]
Questo è tutto! Semplice vero?!
Certamente, visualizzare dei campi di testo non ha molto senso se non abbiamo accesso a cosa ha inserito l’utente. Questo viene fatto dal metodo textFieldAtIndex: basta richiamare l’indice corrette per ottenere informazioni sul campo.
Per esempio questo potrebbe funzionare bene nel metodo del delegato: -alertView:clickedButtonAtIndex:. Proviamo ad impostare lo stile a UIAlertViewStyleLoginAndPasswordInput e cambiare il pulsante di default a “Login”.
Possiamo accedere alle informazioni in questo modo:
[code lang=”obj-c”]- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSString *title = [alertView buttonTitleAtIndex:buttonIndex];
if([title isEqualToString:@"Login"])
{
UITextField *username = [alertView textFieldAtIndex:0];
UITextField *password = [alertView textFieldAtIndex:1];
NSLog(@"Username: %@\nPassword: %@", username.text, password.text);
}
}[/code]