如何在UISearchBar中更改UITextField的属性

时间:2014-02-13 04:42:05

标签: ios objective-c ios7 uitextfield uisearchbar

基本上我正在访问此网址

UITextField * textField= self.searchBar.textField;

我们只是说函数.textField确实得到了textField。我已经多次验证了这一点。

textField.adjustsFontSizeToFitWidth =true;
textField.minimumFontSize =10;
textField.enablesReturnKeyAutomatically =NO;

我跟着上面的代码。

当文本太长时,self.searchBar中的UITextField仍然不会改变字体大小。

我想知道为什么。

3 个答案:

答案 0 :(得分:1)

尝试获取此类文字字段....

UITextField *textField = [searchbar valueForKey:@"_searchField"];

And then customize it according to you.

textField.adjustsFontSizeToFitWidth =true;
textField.minimumFontSize =10;
textField.enablesReturnKeyAutomatically =NO;

答案 1 :(得分:1)

当您想要更改其他类实例中包含的某个类实例时,应该尝试使用UIAppearance实例方法。 (寻找视图层次结构就是解决方法)。

[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setTextColor:[UIColor blueColor]];

documentation by Apple中有很好的解释。

答案 2 :(得分:0)

试试这段代码。这样你就可以在UISearchBar中更改和管理UITextField的属性

for (UIView *searchBarSubview in [searchbar subviews])
{
    if ([searchBarSubview conformsToProtocol:@protocol(UITextInputTraits)])
    {
        @try
        {
            [(UITextField *)searchBarSubview setBorderStyle:UITextBorderStyleRoundedRect];
             [[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setFont:[UIFont fontWithName:@"jots" size:10]];

            [[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] adjustsFontSizeToFitWidth];

            [[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] enablesReturnKeyAutomatically];

        }
        @catch (NSException * e)
        {
            // ignore exception
        }
    }
}

希望它可以帮助你..