back to top

Inserire del testo mediante un UITextField – Guida Sviluppo App iOS

Uno degli elementi del framework UIKit più utilizzati e che permette la massima interazione con l’utente è l’elemento UITextField. Questo elemento è il classico campo di testo che, se cliccato, farà apparire sul display una tastiera virtuale per permettere all’utente di poter immettere del testo. Data la sua importanza in ogni applicazione è opportuno fornire al lettore la lista degli attributi modificabili per personalizzare questo elemento grafico in maniera corretta:

  • text: indica il testo che verrà inserito dall’utente all’interno dell’area di testo.
  • placeholder: indica il testo che è possibile inserire all’interno dell’area di testo per fornire all’utente delle indicazioni più precise sul contenuto che dovrà inserire. Per esempio, in un gioco, potremo inserire come placeholder il seguente testo: "Inserisci il tuo nickName".
  • textColor: banalmente indica il colore che vogliamo associare alla scritta inserita dall’uetente.
  • font: indica il font che verrà utilizzato all’interno dell’area di testo.
  • background: indica lo sfondo che avrà l’area di testo. Questo parametro è molto importante se si vuole effettuare una customizzazione dell’area di testo, inserendo come sfondo un’immagine creata ad-hoc. Inserendo come sfondo un’immagine, potremo ottenere un risultato grafico notevole.
  • borderStyle: indica lo stile del bordo dell’area di testo. Di default questo valore è settato al valore UITextBorderStyleNone.

Abbiamo detto che quando l’utente tocca l’area di testo apparirà automaticamente una tastiera virtuale. Purtroppo, però, una volta inserito il testo e cliccato sul tasto return la tastiera non scomparirà in maniera automatica ma dovremo impostare tale comportamento via codice. A questo punto, dunque, facciamo qualche esempio per prendere un po’ di confidenza con questo nuovo elemento.

Apriamo un nuovo progetto View-based application e inseriamo, nel file header del ViewController, il seguente codice:

@interface EsempioText : UIViewController {
  
	IBOutlet UITextField *testo;
}
@property(nonatomic,retain) IBOutlet UITextField *testo;
@end
Apriamo adesso il file .xib relativo al ViewController ed inseriamo, con Interface Builder, una elemento UITextField. Fatto ciò effettuiamo il collegamento opportuno utilizzando il File’s Owner. A questo punto, torniamo su Xcode, e posizioniamoci nel metodo viewDidLoad del file di implementazione del ViewController inserendo il seguente codice:
[testo setPlaceholder:@"Inserisci qui il tuo testo"];
[testo setFont:[UIFont fontWithName:@"Arial" size:30]];
[testo setBorderStyle:UITextBorderStyleLine];
[testo setBackground:@"immagine_sfondo.png"];
Come vediamo l’area di testo presenterà le caratteristiche settate tramite il codice sorgente ma, come anticipato, quando clicchiamo il tasto return sulla tastiera quest’ultima rimane visibile a schermo. Per poterla chiudere è necessario associare un delegato alla casella di testo nella stessa maniera in cui avevamo associato un delegato alla alert. Creiamo, quindi, un nuovo file Objective-C Class e nel file header andiamo ad inserire il seguente codice:
@interface delegatoText : NSObject <UITextFieldDelegate> {

}

@end
e nel file di implementazione inseriamo il metodo textFieldShouldReturn: che ci permetterà di gestire la pressione sul tasto return:
- (BOOL)textFieldShouldReturn:(UITextField *)theTextField {

  [theTextField resignFirstResponder];
	
  return YES;
}
Il metodo resignFirstResponder chiuderà la tastiera non appena l’utente avrà cliccato sul tasto return.

A questo punto non ci resta che associare il delegato alla nostra casella di testo e per far ciò spostiamoci nuovamente nel file di implementazione del ViewController, importiamo il file delegatoText.h ed aggiungiamo, nel metodo viewDidLoad, queste due linee di codice:

delegatoText * delegato = [[delegatoText alloc]init];
testo.delegate = delegato;

Pubblicitร 

In questa guida...