Ray*_*ond 6 uisearchbar ios swift swift5 ios13
我正在尝试为里面的占位符文本设置颜色UISearchbar。现在我有以下代码。它不会在 iOS 13 上将白色设置为占位符文本。它适用于 iOS 12。似乎某些内容已损坏或 iOS 13 中的支持已被删除?
我已经搜索了很多并尝试了一些解决方法,但没有用。我还尝试为文本字段设置属性文本颜色,但这也不会改变颜色。
有没有可行的解决方案?
class CustomSearchBar: UISearchBar {
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override func awakeFromNib() {
super.awakeFromNib()
self.sizeToFit()
// Search text colour change
let textFieldInsideSearchBar = self.value(forKey: "searchField") as? UITextField
textFieldInsideSearchBar?.textColor = UIColor.white
// Search Placeholder text colour change
let placeHolderText = textFieldInsideSearchBar!.value(forKey: "placeholderLabel") as? UILabel
placeHolderText?.textColor = UIColor.white // doesn't work
}
}
Run Code Online (Sandbox Code Playgroud)
把代码放在viewDidAppear,viewDidLoad还为时过早。然后你的占位符应该变成白色
searchController.searchBar.searchTextField.attributedPlaceholder = NSAttributedString(string: "Enter Search Here", attributes: [NSAttributedString.Key.foregroundColor : UIColor.white])
Run Code Online (Sandbox Code Playgroud)
var searchBar: UISearchBar!
if let textfield = searchBar.value(forKey: "searchField") as? UITextField {
textfield.attributedPlaceholder = NSAttributedString(string: textfield.placeholder ?? "", attributes: [NSAttributedString.Key.foregroundColor : UIColor.white])
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2802 次 |
| 最近记录: |