помогите разобраться, есть вроде не очень сложный код, но почему-то при установке курсора в поисковую строку не появляется клавиатура, ни автоматически, ни через Command+K. Невозможно что-то ввести и с физической клавы. Более того, при попытке нажать любую клавишу, проект просто зависает и больше ни на что не реагирует. Сообщений об ошибках нет, приложение не падает.
import UIKit
class MasterTableViewController: UITableViewController {
var months = [String]()
let searchController = UISearchController(searchResultsController: nil)
var filteredMonths: [String] = []
override func viewDidLoad() {
super.viewDidLoad()
months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
searchController.searchResultsUpdater = self
searchController.obscuresBackgroundDuringPresentation = false
searchController.searchBar.placeholder = "Search Month"
navigationItem.searchController = searchController
definesPresentationContext = true
}
// MARK: - Table view data source
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if isFiltering {
filteredMonths.count
}
return months.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
let month: String
if isFiltering {
month = filteredMonths[indexPath.row]
} else {
month = months[indexPath.row]
}
cell.textLabel?.text = month
return cell
}
var isSearchBarEmpty: Bool {
return searchController.searchBar.text?.isEmpty ?? true
}
var isFiltering: Bool {
return searchController.isActive && !isSearchBarEmpty
}
func filterContentForSearchText(_ searchText: String) {
filteredMonths = months.filter { (month: String) -> Bool in
return month.lowercased().contains(searchText.lowercased())
}
tableView.reloadData()
}
}
extension MasterTableViewController: UISearchResultsUpdating {
func updateSearchResults(for searchController: UISearchController) {
let searchBar = searchController.searchBar
filterContentForSearchText(searchBar.text!)
}
}
Пдозреваю, что проблема где-то в методе filterContentForSearchText, но неясно что именно.