Ответ 1
Курсор в строке поиска принимает цвет из панели поиска → Вид → Свойство цвета оттенка. В вашем случае он имеет белый цвет, поэтому он становится невидимым.
У меня UISearchBar
в UITableView
как заголовок таблицы. Когда я нажимаю UISearchBar
для начала поиска, этот метод запускается
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
для UISearchDisplayController
.
Но результат такой:
Как вы можете видеть, курсора нет, я могу начать печатать и искать, все работает нормально. Также он невидим только в iOS 7. Однако с iOS 6.1 и iOS 7.1 Beta 3 я мог видеть курсор. Итак, как я могу сделать курсор UISearchBar видимым или как добавить курсор в свой UISearchBar?
Курсор в строке поиска принимает цвет из панели поиска → Вид → Свойство цвета оттенка. В вашем случае он имеет белый цвет, поэтому он становится невидимым.
попробуйте использовать с помощью
-(void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller
{
self.navigationItem.titleView.tintColor = [UIColor blueColor];
}
надеюсь, что это поможет вам
Попробуйте установить цвет оттенка текстового поля, используя UIAppearance
[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setTintColor: [UIColor darkGrayColor]];
Если вы хотите, чтобы кнопка курсора и отмены была разных цветов...
Начните с установки цвета оттенка представления (не оттенка) в редакторе раскадровки, который будет применяться как к курсору, так и к кнопке отмены.
Чтобы сделать курсор другого цвета, вам нужно сделать это программно. Текстовое поле вложенных уровней в вложенные объекты searchBar. Используйте эту вспомогательную функцию setTextFieldTintColor
для перемещения всех подзонов.
@IBOutlet weak var searchBar: UISearchBar!
override func viewDidLoad() {
super.viewDidLoad()
// set tint color for all subviews in searchBar that are of type UITextField
setTextFieldTintColor(to: UIColor.darkText, for: searchBar)
}
func setTextFieldTintColor(to color: UIColor, for view: UIView) {
if view is UITextField {
view.tintColor = color
}
for subview in view.subviews {
setTextFieldTintColor(to: color, for: subview)
}
}
Конечный результат выглядит следующим образом:
Ваш курсор белый, потому что свойство tintColor на UISearchBar установлено на белый.
Если вы хотите, чтобы отменить btn быть белым, а курсор - черным, вы можете использовать:
UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).tintColor = .black