单击指定单元格后,在Searchbar占位符中获取表格查看单元格文本值

时间:2017-12-29 12:38:50

标签: ios swift uitableview uisearchbar

我的 ViewController 包含表格视图。我从 JSON 获取数据,并且已经能够在表格视图单元格中显示此值。 搜索栏也可用于过滤目的。

我想将表格查看单元格文字作为我的搜索栏  单击该特定单元格时占位符

Showing each cell values

我希望 Baramunda 作为我的占位符文字,同时点击该特定单元格。

我的相同代码如下。

func searchBar(){

    let searchBar = UISearchBar(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: 50));
    searchBar.delegate = self
    searchBar.showsScopeBar = true
    searchBar.tintColor = UIColor.green
    self.view .addSubview(searchBar)
}
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
    if searchText == ""
    {
        tableView.alpha = 0.0
        searchBar.placeholder = "Search Location Here"
        parseData()
    }
    else {

        if searchBar.selectedScopeButtonIndex  == 0 {
            tableView.alpha = 1.0
            areaNameArr = areaNameArr.filter({ (anyobject) -> Bool in
                return (anyobject.lowercased.contains(searchText.lowercased()))
            })

        }
        else {
            print("Do Nothing")
        }
    }
    self.tableView.reloadData()
}


public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int

{

    return areaNameArr.count

}



public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell

{
     let cell = tableView.dequeueReusableCell(withIdentifier: "cell" )
    cell?.backgroundColor = UIColor .black
    cell?.textLabel?.textColor = UIColor .white
    cell?.textLabel?.text = areaNameArr[indexPath.row] as? String
    return cell!
}

2 个答案:

答案 0 :(得分:0)

我现在没有xcode,但是以下应该可以使用。

在tableView

的didSelectCell委托方法中添加以下代码
var searchTextField: UITextField? = searchBar.value(forKey: "searchField") as? UITextField
if searchTextField!.responds(to: #selector(getter: UITextField.attributedPlaceholder)) {
    let attributeDict = [NSAttributedStringKey.foregroundColor: UIColor.white]
    searchTextField!.attributedPlaceholder = NSAttributedString(string: "Search", attributes: attributeDict)
}

答案 1 :(得分:0)

您需要将searchBar变量声明为global,以便在函数searchBar()之外访问。

matched_SNPs[2:5] <- lapply(matched_SNPs[2:5], function(x) as.numeric(as.character(x)))

如果这对您没有帮助,请告诉我