Странная ситуация здесь, в надежде, что кто-то может помочь. По сути, у меня есть такой переключатель:
private var searchMode = false {
didSet {
if !searchMode {
self.tableView.endEditing(true)
}
tableView.reloadData()
}
}
Он переключается при нажатии кнопки:
@objc func searchTapped() {
searchMode.toggle()
}
Мой заголовок установлен так:
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
if searchMode {
let header = tableView.dequeueReusableHeaderFooterView(withIdentifier: "searchHeader") as! SearchTableViewHeader
header.searchField.becomeFirstResponder()
header.searchField.addTarget(self, action: #selector(textFieldDidChange(textField:)), for: .editingChanged)
return header
} else {
let header = tableView.dequeueReusableHeaderFooterView(withIdentifier: "blueHeader") as! OpaqueBlueTableViewHeader
header.titleLabel.text = "Discover Innovative Services"
header.subtitleLabel.text = "Learn about our comprehensive range of services"
return header
}
}
Пока все хорошо. Теперь вот в чем дело. Когда я нажимаю кнопку в первый раз, searchMode становится истинным, и появляется мое поле UIText, и это правильно первый респондент. Все идет нормально. Затем, когда я нажимаю на него снова, текстовое поле исчезает. Все идет нормально. НО, когда я нажимаю на него снова, textField корректно появляется, но это так дольше респондент! Позвольте мне показать вам проблему.
Запутывает в GIF, но при первом нажатии на него, это первый респондент, а не снова. Кто-нибудь знает, как я могу заставить его возобновить работу первого респондента?