que también podría utilizar los métodos UITextFieldDelegate (en mi humilde opinión, más fácil de mantener que los observadores clave-valor):
#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;
}
Esto solo funciona cuando la propiedad UITextField.borderStyle es de cualquier tipo excepto UITextBorderStyleRoundedRect (en ese caso, la propiedad de fondo no se tiene en cuenta). Esto significa que podría utilizar el código anterior con UITextBorderStyleBezel, UITextBorderStyleLine y UITextBorderStyleNone, como se explica en la documentación borderStyle:
borderStyle
El estilo de borde utilizado por el campo de texto.
@property (no atómica) UITextBorderStyle borderStyle
Discusión
El valor predeterminado de esta propiedad es UITextBorderStyleNone. Si se establece una imagen de fondo personalizada, esta propiedad se ignora.
Esta es la documentación de la propiedad background de UITextField:
fondo
La imagen que representa la aparición fondo del campo de texto cuando está activado.
@property (no atómica, retener) UIImage * fondo
Discusión
Cuando se establece, la imagen se hace referencia por esta propiedad sustituye a la norma aspecto controlado por la propiedad borderStyle. Las imágenes de fondo se dibujan en la parte del rectángulo del borde de la imagen. Las imágenes que utiliza para el fondo del campo de texto deben poder estirar para ajustarse.
gracias por mencionar sobre borderStyle. Esto debe mencionarse en la documentación para la propiedad de fondo de UITextField – DonnaLea
He encontrado un error en su texto. si UITextField tiene ángulos redondeados, ignora todas las imágenes de fondo. No al revés – Gargo