si potrebbe anche utilizzare i metodi UITextFieldDelegate (IMHO, più facile da gestire rispetto osservatori chiave-valore):
#pragma mark -
#pragma mark UITextFieldDelegate methods
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
_field.background = [UIImage imageNamed:@"focus.png"];
return YES;
}
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
_field.background = [UIImage imageNamed:@"nofocus.png"];
return YES;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
Funziona solo quando la proprietà UITextField.borderStyle è di qualsiasi tipo ma UITextBorderStyleRoundedRect (in tal caso, la proprietà background non viene presa in considerazione). Questo significa che è possibile utilizzare il codice precedente con UITextBorderStyleBezel, UITextBorderStyleLine e UITextBorderStyleNone, come spiegato nella documentazione borderStyle:
borderStyle
Lo stile del bordo utilizzato dal campo di testo.
@property (nonatomic) UITextBorderStyle borderStyle
Discussione
Il valore predefinito per questa proprietà è UITextBorderStyleNone. Se è impostata un'immagine di sfondo personalizzata , questa proprietà viene ignorata.
Questa è la documentazione per la proprietà di UITextField sfondo:
sfondo
L'immagine che rappresenta l'aspetto del campo di testo sfondo quando è abilitata.
@property (nonatomic, trattenere) UIImage * sfondo
Discussione
Quando impostato, l'immagine a cui si riferisce questa struttura sostituisce lo standard aspetto controllata dalla struttura borderStyle. Sfondo le immagini vengono disegnate nella parte del rettangolo del bordo dell'immagine. Le immagini utilizzate per lo sfondo del campo di testo devono essere in grado di allungare lo per adattarsi.
fonte
2010-01-03 15:47:58
grazie per aver parlato del borderStyle. Questo dovrebbe essere menzionato nella documentazione per la proprietà di sfondo di UITextField – DonnaLea
Ho trovato un errore nel testo. se UITextField è con angoli arrotondati, ignora tutte le immagini di sfondo. Non viceversa – Gargo