ios - 修改搜索栏获得焦点时 UISearchBar 和键盘的背景色

标签 ios

当搜索栏获得焦点时,搜索栏和键盘之间有一个黑色透明 View ,就像在 iPhone 电子邮件应用程序中,当你想搜索一封电子邮件时,你先点击搜索栏,有一个黑色透明 View 出现。当您输入一些单词时,将出现一个结果 TableView 。如果您点击 View ,键盘将关闭,搜索字段将失去焦点。

现在,我想更改此 View 的颜色,例如更改为红色透明 View 。我已经通过使用 inputAccessoryView 进行了尝试。但是它下面还有一个黑色的,我必须为它添加点击 Action 。

有没有属性可以修改呢?

最佳答案

我自己找到答案。

for (UIView *subview in searchBar.superview.subviews)
{
    if ([subview isKindOfClass:NSClassFromString(@"UISearchDisplayControllerContainerView")])
    {
        // in iOS7, this view is the view I want;
    }
    if ([subview isKindOfClass:NSClassFromString(@"UIControl")])
    {
        // before iOS7, this view is what I want;
    }
}

好像很隐秘,不知道苹果是否允许或者支持我们改。也许它不鼓励我们像上面那样做。但它可以解决我的问题。

关于ios - 修改搜索栏获得焦点时 UISearchBar 和键盘的背景色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19490433/

相关文章:

ios - 使用 Facebook 的 FirebaseSimpleLogin 后,Firebase observeEventType 没有触发?

ios - Swift 核心数据 - 组不起作用

ios - 最佳实践。通过支持 iOS 5、iOS 6 和 iOS 7 UI,使 iOS 应用程序变得通用

ios - Peer2Peer CouchbaseListener

ios - 如何在 Swift 中向 UICollectionViewCell 添加背景图像?

ios - 在 Swift 中通过委托(delegate)关闭 View Controller

ios - NSURLConnection 后的字符串变化

ios - EKCalendar 没有出现在 calendar.app 中

ios - GADBannerView 滚动与 UITableView IOS

ios - 在不滚动的情况下在 ScrollView 上添加 View (以编程方式)