2013-05-17 19 views
7

Come cambiare il colore del segnaposto testo ho messo nei miei UITextField controlli , per rendere più nero?Come Cambiare il colore del testo segnaposto - iOS

+2

Sopra tutte le risposte, da iOS 6, c'è una proprietà 'NSAttributedString * attributePlaceholder' ad es. 'textField.attributedPlaceholder = [[NSAttributoString alloc] initWithString: title attributes: @ {NSFontAttributeName: textField.font, NSForegroundColorAttributeName: textField.textColor}];' – Hemang

risposta

7

È possibile ignorare drawPlaceholderInRect:(CGRect)rect come tale da rendere manualmente il testo segnaposto:

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

}

1

È possibile utilizzare questa opzione per modificare il colore del testo segnaposto.

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

Sarà necessario creare sottoclassi della classe UITextField e sovrascrivere il seguente metodo.

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

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

} 
1

Utilizzare il seguente codice. che ti aiuterà.

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

utilizzando 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"]; 

è possibile impostare il proprio colore al segnaposto

+0

Qualcuno ha presentato un'app all'App Store con questo? Mi sembra che l'accesso a '_placeholder' possa essere considerato un metodo privato ... – samvermette

+0

@samvermette sì, abbiamo inviato un'app con questo codice, non entrerà come metodo privato – Vinodh

+1

Vedere http://stackoverflow.com/a/3396065/309046 risposta – satish

13

Questo è un modo migliore per cambiare il colore segnaposto tramite KVO ...

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

Spero che ti aiuti a cambiare il colore del segnaposto. Grazie

+0

Stai usando questo in produzione? Intendo accedere a una proprietà privata. – Geri

+0

ha funzionato bene. Grazie –

Problemi correlati