検索バーのテキストの色を変更することはできますか?UISearchBarTextFieldクラスにアクセスできないようです...
質問する
11051 次
4 に答える
19
まず、でサブビューを見つけUISearchBar
、次にサブビューで見つけてUITextField
色を変更します
このコードを試してください:-
for(UIView *subView in searchBar.subviews){
if([subView isKindOfClass:UITextField.class]){
[(UITextField*)subView setTextColor:[UIColor blueColor]];
}
}
iOS5+の場合
[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setTextColor:[UIColor blueColor]];
于 2012-05-23T11:34:25.430 に答える
11
iOS 5以降、これを行う正しい方法は、外観プロトコルを使用することです。
例えば:
[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setTextColor:[UIColor blueColor]];
于 2013-08-15T06:07:55.760 に答える
2
このように属性を設定することができます。これをコントローラーで呼び出します。
[[UITextField appearanceWhenContainedIn:[self class], nil] setDefaultTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor], NSFontAttributeName:[UIFont systemFontOfSize:14]}];
*これにより、コントローラー内のすべてのUITextFieldが変更されることに注意してください
于 2014-09-04T12:45:19.073 に答える
2
元の投稿以降、元のUISearchBar
階層が変更されUITextField
、直接のサブビューではなくなりました。UISearchBar
以下のコードは、階層について何も想定していません。
これは、アプリケーション全体で検索バーのテキストの色を変更したくない場合(つまり、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];
}
}
}
使用法:
[MyClass setAllTextFieldsWithin:self.mySearchBar toColor:[UIColor blueColor]];
于 2016-07-01T12:57:55.667 に答える