2013-05-17 14 views
7

Jak zmienić kolor z zastępczego tekstu I ustawionym w moich UITextField kontroli, aby czarny?Jak zastępczy Zmień kolor tekstu - iOS

+2

Przede wszystkim odpowiedzi, z iOS 6, istnieje właściwość 'NSAttributedString * attributedPlaceholder' np. 'textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString: title attributes: @ {NSFontAttributeName: textField.font, NSForegroundColorAttributeName: textField.textColor}];' – Hemang

Odpowiedz

7

Można zastąpić drawPlaceholderInRect:(CGRect)rect jako takiego ręcznego czynią tekst zastępczy:

- (void) drawPlaceholderInRect:(CGRect)rect { 
[[UIColor blueColor] setFill]; 
[[self placeholder] drawInRect:rect withFont:[UIFont systemFontOfSize:16]]; 

}

1

Można to wykorzystać, aby zmienić kolor tekstu zastępczego.

- (void) drawPlaceholderInRect:(CGRect)rect { 
    [[UIColor blueColor] setFill]; 
    [[self placeholder] drawInRect:rect withFont:[UIFont systemFontOfSize:16]]; 
} 
4

Będziesz musiał podklasować klasę UITextField i zastąpić następującą metodę.

- (void) drawPlaceholderInRect:(CGRect)rect 
{ 
    [[UIColor blackColor] setFill]; 

    [[self placeholder] drawInRect:rect withFont:[UIFont italicSystemFontOfSize:17] lineBreakMode:UILineBreakModeCharacterWrap alignment:UITextAlignmentLeft]; 

} 
1

Skorzystaj z poniższego kodu. która ci pomoże.

- (void) drawPlaceholderInRect:(CGRect)rect 
    { 
    [[UIColor redColor] setFill]; 
    [[self placeholder] drawInRect:rect withFont:[UIFont systemFontOfSize:16]]; 
    } 
45

używając KVC

[yourtextfield setValue:[UIColor colorWithRed:120.0/255.0 green:116.0/255.0 blue:115.0/255.0 alpha:1.0] forKeyPath:@"_placeholderLabel.textColor"]; 

można ustawić własny kolor placeholder

+0

Czy ktoś przesłał aplikację do App Store za pomocą tego? Wydaje mi się, że uzyskanie dostępu do '_placeholder' może być traktowane jako prywatna metoda ... – samvermette

+0

@samvermette Tak, zgłosiliśmy aplikację z tym kodem, nie będzie ona dostępna jako metoda prywatna – Vinodh

+1

Zobacz http://stackoverflow.com/a/3396065/309046 Odpowiedź – satish

13

Jest to najlepszy sposób, aby zmienić kolor zastępczy poprzez KVO ...

[txtEmailAddress setValue:[UIColor blackColor] forKeyPath:@"_placeholderLabel.textColor"]; 

Mam nadzieję, że pomoże ci to zmienić kolor zastępczy. Dzięki

+0

Czy używasz tego w produkcji? Mam na myśli dostęp do prywatnej własności. – Geri

+0

to działało ładnie. Dzięki –

Powiązane problemy