У меня есть tableView с реализованным searchBar. Вверху у меня есть кнопка, которая должна open searchBar with keyboard. Вот как это должно выглядеть: Пользователь коснется здесь

Open search bar

Итак, когда user tap on this button, это should open the searchBar and user can start typing something. Вот мой search methods:

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
        guard !searchText.isEmpty else { filteredActiveState = activeStates; tableView.reloadData(); return }

        searching = true
        //typeView.isHidden = false

        filteredActiveState = activeStates.filter({ titleName -> Bool in
            return titleName.title!.lowercased().contains(searchText.lowercased())
        })
        tableView.reloadData()
    }

    func searchBarTextDidEndEditing(_ searchBar: UISearchBar) {
        searchBar.isHidden = true
        channelLbl.isHidden = false
        searchButtonOutlet.isHidden = false
        typeView.isHidden = true
        //searchBar.endEditing(true)
        //searchBar.resignFirstResponder()
    }

    func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
        searchBar.endEditing(true)
    }

    func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
        searchBar.text = ""
        searchBar.resignFirstResponder()
        self.tableView.reloadData()
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        searchBar.endEditing(true)
    }

Here is code for this button:

@IBAction func searchBtnPressed(_ sender: UIButton) {
        searchBar.isHidden = false
        channelLbl.isHidden = true
        searchButtonOutlet.isHidden = true
}
1
dextermikles 26 Янв 2022 в 15:03

1 ответ

Лучший ответ

Что, если бы вы сделали searchBar.becomeFirstResponder() внутри своего func searchBtnPressed?

1
Shawn Frank 26 Янв 2022 в 15:14
1
Работает, спасибо!
 – 
dextermikles
26 Янв 2022 в 15:18