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]];
;
;
;
[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);
;
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);
;
[myTextField setBackgroundColor:[UIColor whiteColor]];
;
;
;
[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!











12 Responses to “T#022 – Inseriamo un UITextField in un UIAlertView (by iCodeBlog)”
23 Gennaio 2010
SpinorickyCiao DevAPP, io tra poco aprirò un megacontest sul mio blog, volete partecipare insieme a me per rendere il contest più entusiasmante?
26 Gennaio 2010
NeoBel tutorial.. io purtroppo non sono molto pratico di inglese.. attendiamo tutti gli altri!! Complimenti per tutte le vostre iniziative 🙂
6 Marzo 2010
dlCome si fa per prendere il valore dalla uitextField?
31 Marzo 2010
UIAlertView - Guida completa all’uso | devAPP[…] alert è completamente customizzabile, potete infatti aggiungervi Text Fields, Sliders e quello che più preferite. Tenete comunque presente che il motivo per cui sono nati gli […]
9 Aprile 2010
Giulio CrovettiVeramente bello bravo continua così!! siete veramente bravi!!
Però cercate di essere più presenti su youtube…. Ciao e grazie di scrivere!!
24 Maggio 2010
montegentileE ripeto la domanda:
come i fa a prendere il valore dalla UITextField ?
24 Maggio 2010
NeoCiao, io ho usato qualcosa del genere:
– (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex == 1) {
NSString *textValue = textField.text;
//Usa textValue come vuoi..
}
}
16 Settembre 2010
matteoCiao a tutti…ottimo tutorial ma avrei un appunto…il tasto enter della tastiera non fa chiudere la alert e questo risulta scomodo in quanto uno deve premere l’ok quando normalmente si utilizza il tasto ok della tastiera come conferma…ho provato a sistemare questo bug ma non sono riuscito…idee a riguardo!?!?
18 Dicembre 2010
AnonimoIl metodo – (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
Non funziona!
1 Gennaio 2011
AnonimoE’ assurdo utilizzare un metodo che poi non funziona!
8 Giugno 2011
Mirconei nuovi metodi per iOS5 Apple ha dato dei metodi propri per inserire un testo nell’UIAlertView
6 Luglio 2011
alessioSalve avrei un problema nel realizzare un app, praticamente ho una tableview e ho una toolbar con dei pulsanti che fanno tutti la medesima azione, cioè quella di aggiungere alla tableview una scritta, quando clicco su un bottone vorrei che mi si aprisse un allertview e se clicco OK questo deve aggiungersi alla tabella. E’ fattibile? grazie mille.