Таким образом, чтобы преодолеть проблему, вот решение, с которым я пришел:
Прежде всего установите, чтобы показать кнопку Отмена:
searchController.searchBar.setShowsCancelButton(true, animated: true)
Затем найдите кнопку в подпредставлениях панели поиска, затем изменитетекст и скрыть кнопку отмены сразу после установки нового заголовка:
for subview in searchController.searchBar.subviews {
for subview1 in subview.subviews {
for subview2 in subview1.subviews {
if subview2 is UIButton {
let cancelButton = subview2 as! UIButton
cancelButton.setTitle("Cancel".localized, for: .normal)
searchController.searchBar.setShowsCancelButton(false, animated: true)
}
}
}
}
Используя делегата UISearchbar
, покажите кнопку отмены:
func searchBarShouldBeginEditing(_ searchBar: UISearchBar) -> Bool {
searchBar.setShowsCancelButton(true, animated: true)
}
Тогда отмена будетщелкнув с помощью UISearchbar
, делегат скроет его:
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
searchBar.setShowsCancelButton(false, animated: true)
}
Это отлично сработало.