新的默认搜索栏焦点文字颜色添加了Xcode 8.1更新,如何更改?

时间:2016-12-20 10:14:34

标签: swift xcode swift3 xcode8 tvos

问题:

如何设置"重点关注"从默认白色到黑色的UISearchBar文本颜色的状态?

我以编程方式创建了搜索栏,请参阅该代码的帖子结尾。

说明

以前我使用此扩展程序设置搜索栏颜色:

public extension UISearchBar {

    public func setTextColor(color: UIColor) {
        let svs = subviews.flatMap { $0.subviews }
        guard let tf = (svs.filter { $0 is UITextField }).first as? UITextField else { return }
        tf.textColor = color
    }

}

哪个效果很好并且仍然有效。但是,搜索栏似乎是可以关注的#34;从某种意义上说。如果它们被聚焦,则文本颜色会切换为白色(与搜索栏背景颜色相同),使文本不可见。

在我的搜索栏下面,我有一个表格视图,我在其中填充有关该人搜索内容的数据。

当我对任何表格单元格进行聚焦时,UISearchBar文本颜色会变为我最初指定的黑色。

以编程方式创建SearchBar

AppDelegate.swift

中调用
func configueSearchController() -> UIViewController {

        let storyboard = UIStoryboard(name: "Search", bundle: nil)
        guard let searchResultsController = storyboard.instantiateViewController(withIdentifier: SearchViewController.storyboardIdentifier) as? SearchViewController else {
            fatalError("Unable to instatiate a SearchResultViewController from the storyboard.")
        }

        /*
         Create a UISearchController, passing the `searchResultsController` to
         use to display search results.
         */

        let searchController = UISearchController(searchResultsController: searchResultsController)
        searchController.searchResultsUpdater = searchResultsController
        searchController.searchBar.placeholder = NSLocalizedString("Enter keyword (e.g. Gastric Bypass)", comment: "")
        searchController.view.backgroundColor = Constants.Color.backgroundcolor
        searchController.searchBar.keyboardAppearance = UIKeyboardAppearance.dark
        searchController.searchBar.tintColor = Constants.Color.backgroundcolor
        searchController.searchBar.backgroundColor = Constants.Color.backgroundColorSearch
        searchController.searchBar.setTextColor(color: .black)
        searchController.hidesNavigationBarDuringPresentation = false
        searchController.obscuresBackgroundDuringPresentation = true
        searchController.searchBar.searchBarStyle = .minimal
        searchController.searchBar.sizeToFit()

        //searchResultsController.tableView.tableHeaderView = searchController.searchBar

        // Contain the `UISearchController` in a `UISearchContainerViewController`.
        let searchContainer: UISearchContainerViewController = UISearchContainerViewController(searchController: searchController)

        // Finally contain the `UISearchContainerViewController` in a `UINavigationController`.
        let searchNavigationController = UINavigationController(rootViewController: searchContainer)
        searchNavigationController.navigationBar.isTranslucent = true
        searchNavigationController.navigationBar.tintColor = Constants.Color.backgroundcolor
        searchNavigationController.tabBarItem.title = "Search"
        return searchNavigationController

    }

0 个答案:

没有答案