2017-05-29 4 views
0

Bitte meinen Code unten überprüfen, verwende ich eine navigationbar, die eine ist aus searchbar und searchbar ein Textfeld hat, jetzt habe ich eine Textfarbe von textfield ändern will, und ich habe einen Code unten, aber es ist nicht funktioniert so bitte helfen Sie es zu korrigieren.TextField- Textfarbe in searchbar

[[UISearchBar appearanceWhenContainedInInstancesOfClasses:@[[UINavigationBar class]]]setTintColor:[UIColor whiteColor]]; 
[[UITextField appearanceWhenContainedInInstancesOfClasses:@[[UISearchBar class]]]setTextColor:[UIColor whiteColor]]; 
+0

Fügen Sie mehr Code hinzu. –

+0

siehe https://stackoverflow.com/questions/32968907/how-to-change-uisearchbar-textfield-background-color-and-text-color-in-ios8 –

+0

Sie können die Farbe des Textes im Text ändern Feld vom Storyboard selbst. –

Antwort

0

Wenn Sie eine native UISearchbar Steuerung verwenden, dann können Sie die Textfarbe mit dem Code unten

[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setDefaultTextAttributes:@{NSForegroundColorAttributeName:[UIColor redColor]}]; 

ändern Oder Sie können es für eine bestimmte searchBar über Identität Inspector tun: enter image description here

0

Versuchen Sie dies,

NSArray *searchBarSubViews = [[self.searchBar.subviews objectAtIndex:0] subviews]; 

for (UIView *view in searchBarSubViews) { 
    if([view isKindOfClass:[UITextField class]]) 
    { 
     UITextField *txt = (UITextField*)view; 
     UIImageView *imgView = (UIImageView*)textField.leftView; 
     imgView.image = [imgView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; 
     imgView.tintColor = [UIColor whiteColor]; 

     txt.backgroundColor = [UIColor blackColor]; 
     txt.textColor = [UIColor RedColor]; 
     UIButton *btnClear = (UIButton*)[textField valueForKey:@"clearButton"]; 
     [btnClear setImage:[btnClear.imageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] forState:UIControlStateNormal]; 
     btnClear.tintColor = [UIColor whiteColor]; 
    } 
}