Doing es auf diese Art und Weise wird wahrscheinlich funktionieren, ist aber sehr zerbrechlich im Fall apple beschließt, zu spielen mit der view-Hierarchie, siehe meine Lösung unter Verwendung von Optik-Protokoll.
Original UISearchBar Hierarchie hat sich geändert, seit die original post und die UITextField ist nicht mehr eine direkte Untersicht. Der folgende code macht keine Annahmen über die UISearchBar Hierarchie.
Dies ist auch nützlich, wenn Sie nicht möchten, ändern Sie die search-bar text Farbe über die gesamte Anwendung (D. H. mit appearanceWhenContainedIn).
/**
* A recursive method which sets all UITextField text color within a view.
* Makes no assumptions about the original view's hierarchy.
*/+(void) setAllTextFieldsWithin:(UIView*)view toColor:(UIColor*)color
{for(UIView*subView in view.subviews){if([subView isKindOfClass:UITextField.class]){[(UITextField*)subView setTextColor:color];}else{[self setAllTextFieldsWithin:subView toColor:color];}}}
Erstens, finden Sie die Untersicht in
UISearchBar
, dann finden Sie dieUITextField
in der sub-Ansicht ändern Sie dann die FarbeVersuchen, diesen code:-
für Ios 5 +
Als von iOS 5, der richtige Weg, dies zu tun ist mit Hilfe der Aussehen-Protokoll.
Beispiel:
Können Sie die Attribute so gerne, rufen Sie dies in Ihrem controller.
*beachten Sie, dass dies ändert alle UITextFields im controller
Original
UISearchBar
Hierarchie hat sich geändert, seit die original post und dieUITextField
ist nicht mehr eine direkte Untersicht. Der folgende code macht keine Annahmen über dieUISearchBar
Hierarchie.Dies ist auch nützlich, wenn Sie nicht möchten, ändern Sie die search-bar text Farbe über die gesamte Anwendung (D. H. mit appearanceWhenContainedIn).
Verwendung: