Pour les UISearchBars dans notre application, il n'y a pas de curseur affiché dans la barre avec le focus lors de l'exécution sous iOS 7. Comment faire pour que cela s'affiche?
Nous utilisons le SDK 7, avec un objectif minimum de 6. Nous avons désactivé la translucidité pour les barres de navigation et défini la couleur au moment de l'exécution. Je ne peux penser à rien d'autre que nous faisons différemment.
Notre problème était que la couleur de la teinte était réglée sur blanc, donc je ne l'ai pas vue.
Ensemble
searchBar.tintColor = [UIColor blueColor];
Dans la fenêtre des propriétés du champ de recherche
ouvrez la section Affichage> Définir la couleur de la teinte - par défaut.
J'espère que cela vous aidera.
Voici comment cela peut être fait en 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()
}
}
}
searchBar.tintColor = view.tintColor // self.view usually has the proper tintColor
Mieux que .blue
ou peu importe.
Définissez simplement le tintColor pour UISearchBar, dans votre storyboard, xib ou code. Xcode semble ignorer la teinte par défaut.
Vous pouvez parcourir les sous-vues searchBars et obtenir la sous-vue uitextfield et définir sa valeur @ "insertionPointColor" à la couleur souhaitée. Fonctionne mais est une API privée
for (UIView *subView in self.searchBar.subviews) {
if ([subView isKindOfClass:[UITextField class]]) {
[[(UITextField *) subView valueForKey:@"textInputTraits"] setValue:[UIColor blackColor] forKey:@"insertionPointColor"];
}
}