Genauso gut könnte man die UITextFieldDelegate Methoden (IMHO, leichter zu pflegen als Schlüssel-Wert-Beobachter):
#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;
}
Dies funktioniert nur, wenn die UITextField.borderStyle-Eigenschaft von einem beliebigen Typ außer UITextBorderStyleRoundedRect ist (in diesem Fall wird die Hintergrundeigenschaft nicht berücksichtigt). Dies bedeutet, dass Sie den Code oben mit UITextBorderStyleBezel, UITextBorderStyleLine und UITextBorderStyleNone verwenden können, wie in der Dokumentation erklärt border:
border
Die von dem Textfeld verwendet Grenze Stil.
@property (nonatomic) UITextBorderStyle border
Diskussion
Der Standardwert für diese Eigenschaft ist UITextBorderStyleNone. Wenn ein benutzerdefiniertes Hintergrundbild festgelegt ist, wird diese Eigenschaft ignoriert.
Dies ist die Dokumentation für den Hintergrund Eigenschaft UITextField:
Hintergrund
Das Bild, das die Hintergrund Erscheinungsbild des Textes Feld darstellt, wenn er aktiviert ist.
@property (nonatomic behalten) UIImage * Hintergrund
Diskussion
Wenn gesetzt, das Bild von bezeichnet diese Eigenschaft den Standard Auftritt der Borderstyle-Eigenschaft gesteuert ersetzt. Hintergrund Bilder sind in der Grenze gezeichnet Rechteck Teil des Bildes. Bilder Sie für das Textfeld verwenden Hintergrund sollte in der Lage sein, zu dehnen.
danke für die Erwähnung der BorderStyle. Dies sollte in der Dokumentation für die Hintergrundeigenschaft von UITextField – DonnaLea
erwähnt werden Ich habe einen Fehler in Ihrem Text gefunden. Wenn UITextField abgerundete Winkel aufweist, ignoriert es alle Hintergrundbilder. Nicht umgekehrt – Gargo