#ios #swift #uitableview #uisearchbar
#iOS #swift #uitableview #uisearchbar
Вопрос:
По разным причинам я использую UISearchBar сам по себе для фильтрации содержимого UITableView. Фильтрация работает отлично. Однако для выбора чего-либо требуется два нажатия. Первое нажатие отключает клавиатуру, а затем второе выбирает элемент в UITableView. Есть ли способ, которым я могу одним нажатием отключить клавиатуру и выбрать элемент?
Ответ №1:
В UITableView
частности, вы можете использовать:
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
superview?.endEditing(true)
}
Это завершит редактирование при перетаскивании табличного представления.
В более общем смысле endEditing(Bool)
функция при вызове на a UIView
просматривает всю иерархию представлений и, если найден редактируемый текстовый элемент, отменяет его. Параметр предназначен для определения того, следует ли просить представление уйти в отставку в качестве первого респондента или просто быть вынужденным уйти в отставку в качестве первого респондента.
Согласно документации: «Этот метод просматривает текущее представление и его иерархию вложенных представлений для текстового поля, которое в настоящее время является первым респондентом. Если он найдет его, он попросит это текстовое поле отказаться от участия в качестве первого ответчика. Если для параметра force установлено значение true, текстовое поле даже не запрашивается; оно вынуждено уйти в отставку «.
Это означает, что вы можете вызывать endEditing(true)
непосредственно внутри didSelectItemAt
, просто убедитесь, что вы вызываете его в представлении, в котором панель поиска является подвидом. Или просто вызовите его в самой строке поиска.