我正在尝试将搜索栏中文本字段的背景颜色设置为自定义颜色。我在这里查看答案无济于事:
看看那个搜索栏有一个红色的文本字段吗?我遵循了代码,甚至可以验证是否找到了 UISearchBarTextField 对象,并且它的背景颜色设置为 UIColor.red,但颜色没有改变。
我已经弄乱了超级视图的所有背景颜色,希望它可能会有所帮助,但我无法改变那种颜色。也许有一些新技巧,或者有人可以揭示一些可能以某种方式覆盖颜色的东西。
extension UISearchBar {
var textField: UITextField? {
return subviews.first?.subviews.first(where: { $0.isKind(of: UITextField.self) }) as? UITextField
}
}
searchBar.textField?.backgroundColor = UIColor.red // <-- Not working
let textFieldInsideUISearchBarLabel = searchBar.textField?.value(forKey: "placeholderLabel") as? UILabel
textFieldInsideUISearchBarLabel?.textColor = UIColor.lightGray
请注意,UITextField 对象内的文本正在更改为我想要的 lightGray,而不是 UITextField 背景颜色。