如何更改里面的UISearchBar

问题描述:

的UITextField的性能基本上我访问这个URL如何更改里面的UISearchBar

UITextField * textField= self.searchBar.textField; 

让我们只说功能.textField并得到文本框。我已经多次验证了这一点。

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

我跟着上面的代码。

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

我想知道为什么。

+0

尝试继承'MySearchBar:UISearchBar'和'layoutSubviews'定制方法。 – Akhilrajtr

+0

我应该怎么做? –

尝试让你的文本字段这样的....

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

And then customize it according to you. 

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

我知道如何获得textField。例如,我可以让它正确对齐。但是,我无法使文本字段中的字体自动调整。 –

,当你想改变它包含在其他类的实例一些类的实例,您应该尝试使用UIAppearance实例方法。 (寻找视图层次结构是解决方法)。

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

这里在documentation by Apple有很好的解释。

试试这个code..This方式可以在里面的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 
     } 
    } 
} 

希望它可以帮助你..