Wie unterlasse ich UITextField und überschreibe drawPlaceholderInRect, um die Platzhalterfarbe zu ändern

Ich habe eine 3 UITextField mit Platzhaltertext festlegen. Auf einem der UITextField möchte ich den Platzhalter text rot sein.

Nun nach googlen scheint es der beste Weg, dies zu tun ist, um eine Unterklasse UITextField und überschreiben drawPlaceholderInRect.

Wie gehe ich über die Erben und überschreiben drawPlaceholderInRect? Ich habe nicht gefunden alle code-Beispiele oder tutorials, ich bin neu in objective-c und iOS-Entwicklung, so finden Sie es schwierig, es herauszufinden.

Antwort:

Erstellt eine neue objective-c Klasse mit dem Namen CustomUITextFieldPlaceholder die Unterklassen UITextField. In CustomUITextFieldPlaceholder.m fügen Sie den folgenden code

 @implementation CustomUITextFieldPlaceholder

- (void)drawPlaceholderInRect:(CGRect)rect {
    //Set colour and font size of placeholder text
    [[UIColor redColor] setFill];
    [[self placeholder] drawInRect:rect withFont:[UIFont systemFontOfSize:12]];
}

@end

Zur Umsetzung der oben in Ihrem Projekt

#import "CustomUITextFieldPlaceholder.h"

und

IBOutlet CustomUITextFieldPlaceHolder *txtName;

Hinweis: Dies funktioniert und, wie ich glaube, richtige Praxis, aber ich habe nicht vollständig getestet. Hoffe, dieses Beispiel hilft, andere in meiner situation.

Edit:

Geändert

[[UIColor redColor] setFill];

für

[[UIColor colorWithRed:255.0 green:0.0 blue:0.0 alpha:0.7] setFill];

So, ich könnte stellen Sie die Deckkraft auf 70% zu imitieren, Standard-Platzhalter.

InformationsquelleAutor der Frage Matt Price | 2011-05-27

Schreibe einen Kommentar