UIAlerView Styles inseriamo testo e password

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.

alertview

UIAlertViewStyleSecureTextInput

Questo stile è uguale al plainTextInput eccetto che tutti i caratteri inseriti sono oscurati.

alertview

UIAlertViewStyleLoginAndPasswordInput

Impostando questo tipo di stile verranno aggiunti un campo per l’input del testo tipo username ed un campo oscurato per la password.

alertView

UIAlertViewStyleDefault

Questo è lo stile standard che tutti conosciamo e amiamo.

alertview

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]