Я получил эти строки кода в моем контроллере представления.
этот код предназначен для цвета текста UISearchBar и работает
let textFieldInsideSearchBar = searchBar.value(forKey: “searchField”) as? UITextField
textFieldInsideSearchBar?.textColor = UIColor.white
этот код предназначен для заполнителя UISearchBarцвет текста и он не работает
let textFieldInsideSearchBarLabel = textFieldInsideSearchBar!.value(forKey: “placeholderLabel”) as? UILabel
textFieldInsideSearchBarLabel?.textColor = UIColor.white
этот является рабочим кодом для цвета текста заполнителя и т. д.
этот коддля цвета значка увеличительного стекла UISearchBar и он работает
let glassIconView = textFieldInsideSearchBar?.leftView as? UIImageView
glassIconView?.image = glassIconView?.image?.withRenderingMode(.alwaysTemplate)
glassIconView?.tintColor = UIColor.white
этот код является кодом для цвета кнопки очистки UISearchBar (x) и не работает
let clearButton = textFieldInsideSearchBar?.value(forKey: “clearButton”) as! UIButton
clearButton.setImage(clearButton.imageView?.image?.withRenderingMode(.alwaysTemplate), for: .normal)
clearButton.tintColor = UIColor.white
Я обнаружил, что эта версия изменения цвета кнопки очистки не работает в Xcode 11. Удалось установить рабочую версию. Вы должны импортировать актив для кнопки отмены. После этого вам нужно изменить атрибут «Render As» вашего значка на «Шаблонное изображение в папке Assets».
let clearButton = textFieldInsideUISearchBar?.value(forKey: "clearButton") as! UIButton
clearButton.setImage(UIImage(named: "yourIconName"), for: .normal)
clearButton.tintColor = .white
Кроме того, я перепробовал почти каждый код, который смог найти. Каким-то образом они работают для текста и увеличительного стекла, но не работают для других двух. Они выглядят очень некрасиво, когда фон темный. Есть ли лучший способ изменить цвета текста кнопки и заполнителя?
Xcode версии 11.1 Swift 5.1