我们的应用中,UISearchBar中的光标没有显示。

53

在我们的应用程序中,当在iOS 7下运行时,在具有焦点的搜索栏中没有显示光标。如何使其显示?

我们使用SDK 7,最低目标为6。我们已经关闭导航栏的半透明效果,并在运行时设置了颜色。我想不出我们还做了什么不同的事情。

7个回答

113
我们的问题是色调颜色被设置成了白色,所以我看不到它。

1
如果您想让光标与按钮的颜色不同:https://dev59.com/G2Ei5IYBdhLWcg3wPadh#42444940 - Derek Soike
同样的问题..谢谢 - Ankur Kathiriya

28

设置

searchBar.tintColor = [UIColor blueColor];

1
搜索栏的颜色似乎是 (66, 107, 242),供参考。 - cncool

7

在搜索框属性窗口中,打开查看部分>设置着色颜色-默认。

enter image description here

希望这能帮到您。


3
这是Swift实现的方式:

这是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()
        }
    }

}

这是我的Xamarin C#端口代码: UIView view = searchBar.Subviews[0];foreach (UIView item in view.Subviews) { if (item is UITextField) { item.TintColor = UIColor.Blue; } } - Sven Sönnichsen

2
searchBar.tintColor = view.tintColor  // self.view usually has the proper tintColor

优于 .blue 或其他任何东西。

0
你可以遍历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"];
    }
}

0
只需在您的Storyboard、Xib或代码中为UISearchBar设置tintColor即可。Xcode似乎会忽略默认的tintColor。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接