es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La UISearchBar se bloquea con NSRangeException.

Me encontré con este fallo en mi aplicación y al parecer también aparece en muchas otras aplicaciones, especialmente en las aplicaciones de Apple como Música, Noticias…
Si utilizas la función de búsqueda en estas aplicaciones, escribe algo en ella y después haz doble clic en la barra de búsqueda para que aparezcan los cursores de selección de texto. Agarra el primer cursor y arrástralo hacia la izquierda o hacia la derecha sin exceder el último cursor. Sigue agarrando el primer cursor y escribe algo en el teclado, la aplicación se bloqueará con una excepción NSRangeException.
enter image description here

Dado que uso UISearchBar en mi aplicación, tengo este mismo problema. No estoy seguro si este es un fallo conocido o no, pero no puedo encontrar ninguna información en línea. ¿Existe una solución sin cambiar UISearchBar por algo más? Además, ¿hay alguna forma de capturar el evento touchesend (cuando el dedo deja el cursor después de moverlo), para que pueda investigar más este problema? Intenté la función de touchesend de UITextFieldDelegate pero no funciona.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Error en UISearchBar que causa que la aplicación se bloquee

    Si se ha encontrado un error en su aplicación similar al que se muestra en el GIF anterior -donde la aplicación se bloquea cuando el primer cursor se mantiene y se arrastra a la izquierda o derecha después de escribir en la barra de búsqueda, es posible que experimente el mismo problema que muchas otras aplicaciones enfrentan actualmente. Este error también se puede encontrar en aplicaciones de Apple como Música y Noticias.

    Actualmente, no hay ninguna solución documentada para este error sin cambiar el código de UISearchBar por algo más. Sin embargo, una solución alternativa podría ser presentar un informe de error con Apple y esperar una parche.

    En cuanto a capturar el evento touchesend, la función touchesend de UITextFieldDelegate puede no funcionar en este caso. Sin embargo, es posible que pueda utilizar un método de delegado diferente o utilizar un reconocedor de gestos para realizar un seguimiento de los eventos de toque.

Comments are closed.