在
UISearchBar
中更改光标颜色是否可行?您实际上可以这样做:
[[UITextField appearanceWhenContainedIn: [UISearchBar class], nil] setTintColor:YOUR_COLOR_HERE];
如果您想为搜索栏本身使用不同的色调。
SearchController
,它扩展了UISearchController
,并使用以下代码为光标和取消按钮使用不同的颜色。self.searchBar.barTintColor = UIColor.greyColor()
self.searchBar.tintColor = UIColor.greyColor()
UIBarButtonItem.appearance().tintColor = UIColor.whiteColor()
针对 SWIFT 5
self.searchBar.barTintColor = UIColor.gray
self.searchBar.tintColor = UIColor.gray
UIBarButtonItem.appearance().tintColor = UIColor.white
UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).tintColor = .lightGray
这将把光标调整为UIColor.lightGray
,而不更改取消按钮的颜色。
在iOS 7中是可能的。只需设置UISearchBar的色调颜色即可。例如,在您的应用程序委托中:
[[UISearchBar appearance] setTintColor:[UIColor redColor]];
很遗憾,这是不可能的。我也想在UISearchBar中使用自定义字体,但这也是不可能的。
尽管可能有一些方法可以覆盖整个UISearchBar类,但苹果不会接受任何更改其类的应用程序。如果确实有必要,您可以创建自己的搜索栏。不过,仅仅为了更改光标颜色而这样做似乎有点大费周折。