example bar iphone uisearchbar uisearchbardelegate

iphone - search bar swift 4 example



No se llama al método delegado searchBarCancelButtonClicked. ¿Hay alguna manera de llamar? (7)

Asegúrese de que su UIViewController esté configurado como el delegado de su UISearchBar y que adopte el protocolo UISearchBarDelegate.

UIViewController para implementar una vista para colocar una UITableView UISearchBar y se está implementando. Pero no puedes llamar a searchBarCancelButtonClicked. No sé cuál es la razón.


En mi caso fue un usuario no controladoInteractionEnabled = NO


Esta línea elimina la vista transparente de UISearchController

let searchController = UISearchController(searchResultsController: nil) searchController.dimsBackgroundDuringPresentation = false


La razón por la que searchBarCancelButtonClicked no se activa puede ser porque su UISearchBar no muestra el botón Cancelar. Puede mostrar el botón Cancelar de esta manera:

searchBar.showsCancelButton = true

Tuve el mismo problema y hacer que el botón Cancelar hiciera que searchBarCancelButtonClicked se disparara como se esperaba.


Me encontré con el mismo problema cuando tenía una barra UISearch dentro de un UIScrollView. Según entiendo la pregunta, la tenía dentro de un UITableView, que es una subclase de UIScrollView.

Lo que ayudó en mi caso fue establecer.

tableView.delaysContentTouches = NO;

Parece que el método searchBarCancelButtonClicked no funciona bien con ese conjunto en YES , que es la configuración predeterminada.


searchController.searchBar.delegate = self , no solo searchController.delegate = self


- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText { // This method has been called when u enter some text on search or Cancel the search. // so make some condition for example: if([searchText isEqualToString:@""] || searchText==nil) { // Nothing to search, empty result. searching = NO; [mytableView reloadData]; } }

Espero eso ayude.