T#022 – Inseriamo un UITextField in un UIAlertView (by iCodeBlog)
Iniziamo questo tutorial ringraziando gli amici di iCodeBlog i quali ci hanno gentilmente concesso la traduzione su devAPP.it dei loro interessantissimi Tutorial. Da oggi, quindi, oltre a gustarvi i tutorial dei nostri autori, avrete modo di imparare qualcosa di nuovo anche grazie ai tutorial di iCodeBlog. Inauguriamo questa nuova collaborazione con un tutorial di AppStoreMod che ci mostra come inserire un UITextField all’interno di un UIAlertView. Tutorial molto semplice quindi, ce la caveremo con poche righe di codice. Imparerete ad usare CGAffineTransorm e a creare un UITextField via codice.
Qui a sinistra e in basso due screenshots che mostrano il risultato che vogliamo ottenere:

Non perdiamoci in chiacchere e iniziamo subito con il nostro tutorial..
1. Creiamo un nuovo progetto “View Based Application”
Potete chiamarlo come meglio preferite, noi lo abbiamo chiamato “TextFieldInAlert”.
2. Implementiamo il codice
Aprite il file viewcontroller.m o se avete chiamato il progetto TextFieldInAlert come noi aprite TextFieldInAlert.m. Cercate al suo interno il metodo -(void)viewDidLoad e “scommentatelo”. Inserite quindi al suo interno il seguente codice:
- (void)viewDidLoad { [super viewDidLoad]; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Enter Name Here" message:@"this gets covered!" delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:@"OK!", nil]; UITextField *myTextField = [[UITextField alloc] initWithFrame:CGRectMake(12, 45, 260, 25)]; [myTextField setBackgroundColor:[UIColor whiteColor]]; [alert addSubview:myTextField]; [alert show]; [alert release]; [myTextField release]; }
In questo modo non facciamo altro che creare semplicemente un UIAlertView di nome alert a cui aggiungiamo successivamente un UITextField di nome myTextField sottoforma di Subview, il tutto via codice.
Avrete sicuramente notato il messaggio”this gets covered!” (che viene poi nascosto dall’UITextField in fase di esecuzione del programma) inserito nell’UIAlertView, senza avremmo avuto dei problemi nella visualizzazione grafica con fastidiose sovrapposizioni degli elementi. Potete provare a togliere questa porzione di cocide e vedere cosa succede. Clicchiamo ora su “Build and Run” e proviamo l’applicazione. Come potete vedere abbiamo ora l’UITextField all’interno del nostro UIAlertView. Ora provate a toccare l’UITextField. Uh oh, perchè la tastiera copre l’UIAlertView? Ecco una semplice soluzione per sitemare questo inconveniente. Dobbiamo giusto aggiungere due linee di codice e avremo risolto questo problema. Aggiungete queste righe al vostro codice:
CGAffineTransform myTransform = CGAffineTransformMakeTranslation(0, 60); [alert setTransform:myTransform];
Il vostro codice al completo dovrebbe ora quindi essere questo:
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@”Enter Name Here” message:@”this gets covered!” delegate:self cancelButtonTitle:@”Dismiss” otherButtonTitles:@”OK!”, nil]; UITextField *myTextField = [[UITextField alloc] initWithFrame:CGRectMake(12, 45, 260, 25)]; CGAffineTransform myTransform = CGAffineTransformMakeTranslation(0, 60); [alert setTransform:myTransform]; [myTextField setBackgroundColor:[UIColor whiteColor]]; [alert addSubview:myTextField]; [alert show]; [alert release]; [myTextField release];
Se cliccate su “Build and Run”, noterete ora che l’UITextField è leggermente più grande e quando toccherete l’UITextField, la tastiera non la coprerà più. Questo grazieproprio a CGAffineTransform.
Ancora grazie a iCodeBlog, alla prossima!
| Stampa l'articolo | Questo articolo è stato pubblicato da Staff devAPP il 23 gennaio 2010 alle 16:56, ed è archiviato come Tutorial Pratici. Puoi seguire i commenti a questo post attraverso RSS 2.0. Puoi pubblicare un commento o segnalare un trackback dal tuo sito. |























circa 6 mesi fa
Ciao DevAPP, io tra poco aprirò un megacontest sul mio blog, volete partecipare insieme a me per rendere il contest più entusiasmante?
circa 6 mesi fa
Bel tutorial.. io purtroppo non sono molto pratico di inglese.. attendiamo tutti gli altri!! Complimenti per tutte le vostre iniziative
circa 4 mesi fa
Come si fa per prendere il valore dalla uitextField?
circa 3 mesi fa
Veramente bello bravo continua così!! siete veramente bravi!!
Però cercate di essere più presenti su youtube…. Ciao e grazie di scrivere!!
circa 2 mesi fa
E ripeto la domanda:
come i fa a prendere il valore dalla UITextField ?
circa 2 mesi fa
Ciao, io ho usato qualcosa del genere:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex == 1) {
NSString *textValue = textField.text;
//Usa textValue come vuoi..
}
}