Ответ 1
Наша проблема заключалась в том, что цвет оттенка был установлен на белый, поэтому я не видел его.
Для UISearchBars в нашем приложении курсор не отображается на панели с фокусом при работе под iOS 7. Как это сделать?
Мы используем SDK 7 с минимальной целью 6. У нас есть прозрачность для навигационных панелей и задается цвет во время выполнения. Я не могу думать ни о чем другом, что мы делаем по-другому.
Наша проблема заключалась в том, что цвет оттенка был установлен на белый, поэтому я не видел его.
Set
searchBar.tintColor = [UIColor blueColor];
В окне свойств окна поиска
открыть раздел "Вид" > "Установить цвет оттенка" - по умолчанию.
Надеюсь, это поможет.
Вот как это можно сделать в Swift:
override func viewWillAppear(animated: Bool) {
self.searchBar.tintColor = UIColor.whiteColor()
let view: UIView = self.searchBar.subviews[0] as! UIView
let subViewsArray = view.subviews
for (subView: UIView) in subViewsArray as! [UIView] {
println(subView)
if subView.isKindOfClass(UITextField){
subView.tintColor = UIColor.blueColor()
}
}
}
Просто установите tintColor для UISearchBar, в вашем раскадровке, xib или коде. Xcode, похоже, игнорирует значение tintColor по умолчанию.
Вы можете прокрутить подзоны searchBars и получить подвью uitextfield и установить его значение @ "insertionPointColor" на нужный вам цвет. Работает, но является частным api
for (UIView *subView in self.searchBar.subviews) {
if ([subView isKindOfClass:[UITextField class]]) {
[[(UITextField *) subView valueForKey:@"textInputTraits"] setValue:[UIColor blackColor] forKey:@"insertionPointColor"];
}
}
searchBar.tintColor = view.tintColor // self.view usually has the proper tintColor
Лучше, чем .blue
или что-то еще.