Исходное состояние:
sb.showsScopeBar имеет значение false
searchBarShouldBeginEditing сделать кнопки области видимости, когда панель поискаактивировано:
func searchBarShouldBeginEditing(_ sb: UISearchBar) -> Bool {
sb.setShowsCancelButton(true, animated: true)
sb.scopeButtonTitles = scopeButtonTitles
}
Нажатие на кнопку отмены, правильно скрывает кнопки прицела, и мы возвращаемся в исходное состояние.
NB Это поведение по умолчанию, и наш searchBarCancelButtonClicked ничего не делает, кроме восстановления предыдущего текста запроса, если необходимо.
Теперь идут раздражающие биты ...
Если я добавлю
sb.setShowsCancelButton(false, animated: true)
либо в searchBarShouldEndEditing, либо в searchBarTextDidEndEditing, кнопка отмены исчезнет, а кнопки области видимости просто уменьшатся:
При добавлении sb.scopeButtonTitles = nil
кнопки области видимости исчезают, но размер строки поиска не изменяется:
Вызов sb.sizeToFit (), похоже, совсем не помогает ... использование sb.showsScopeBar полностью нарушает интерфейс панели поиска.