2

我的导航栏中有一个 UiSearchbar。SearchBar 样式是最小的。我在 iOS 8 上,使用 SearchController(没有 SearchDisplayController)和 Swift。

  1. 我想将占位符和图标颜色设置为白色。这可能吗?到目前为止,我发现的所有内容似乎都已过时,或者作者不确定此代码是否会得到 Apple 的批准。

  2. 我想摆脱取消按钮,但是当我尝试这个时: searchController.searchBar.showsCancelButton = false 在 viewDidLoad 中,取消按钮仍然出现。

我必须说,我正在以编程方式创建 searchBar ..

4

1 回答 1

6

对于您的第一个问题,您可以访问UITextField您的UISearchbar并编辑占位符颜色:

var textfield:UITextField = searchBar.valueForKey("searchField") as UITextField

//Set the foregroundcolor of the placeholder
var attributedString = NSAttributedString(string: "your placeholdertext", attributes: [NSForegroundColorAttributeName : UIColor.whiteColor()])

textfield.attributedPlaceholder = attributedString

然后还要设置您必须访问的玻璃leftView颜色UITextField

//Get the glass icon
var iconView:UIImageView = textfield.leftView as UIImageView
//Make the icon to a template which you can edit
iconView.image = iconView.image?.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)
//Set the color of the icon
iconView.tintColor = UIColor.whiteColor()

要隐藏您的取消按钮,您UISearchbar可以使用searchBarShouldBeginEditing委托方法并将其隐藏。只需确保添加第UISearchBarDelegate一个并将委托设置为您的搜索栏:

 class YourviewController:UIViewController, UISearchBarDelegate{

    override func viewDidLoad() {
        searchbar.delegate = self
    }

    func searchBarShouldBeginEditing(searchBar: UISearchBar) -> Bool {
        searchBar.setShowsCancelButton(false, animated: true)
        return true
    }
}
于 2015-02-14T13:06:10.413 回答