9

Tengo una barra de búsqueda que generalmente funciona. El problema viene cuando pruebo en el iPhone, la autocorrección entra en acción. Tengo la barra de búsqueda establecida que si hay texto en la barra de consulta> 4 de longitud, entonces comienza a poner cosas en la matriz searchResults. Si hay una sugerencia de autocorrección e ignoro y selecciono algo de la matriz, la aplicación se bloquea. Seguí el error hasta el hecho de que la palabra autocorrectada se está seleccionando antes de la selección de fila (pero ambas se realizan), por lo que la matriz searchResults a la que pensé que estaba accediendo ya no es válida.autocorrección en UISearchBar interfiere cuando presiono didSelectRowAtIndexPath

Por ejemplo, puse "demp" en la barra de búsqueda. La autocorrección sugiere "demostración". Mientras tanto, la búsqueda arroja un montón de resultados con "dempster" en ella. Selecciono el primero. Al hacer esto, la búsqueda vuelve a buscar en "demo" y borra la matriz original (tenga en cuenta que busco en un servidor las búsquedas para que la matriz no se haya rellenado). Entonces el método didSelectRowAtIndexRow se dispara y no hay nada en la matriz y se bloquea.

¿Alguna idea? Gracias por adelantado.

+0

Tuve el mismo problema. Yo diría que esto es un error en UISearchBar. – hpique

Respuesta

16

Dado que está utilizando una barra de búsqueda, no debería haber una autocorrección, las personas quieren encontrar lo que están buscando, no lo que algún diccionario les dice que encuentren. Simplemente configure

searchBar.autocorrectionType = UITextAutocorrectionTypeNo; 

y problema solucionado.

+0

¡Eso es lo suficientemente bueno para mí! ¡Gracias! –

+0

No estoy de acuerdo con que no deba haber autocorrección. Si no fuera tan intrusivo como en iOS, sería útil. – hpique

Cuestiones relacionadas