2010-09-02 9 views
7

preguntándose si alguien ha escrito o encontrado una buena forma de iniciar sesión en la consola la vista en la que ocurrió un toque. Sé que toquesEnded: se puede implementar, pero mi problema es que algo misterioso está bloqueando toques en mis puntos de vista y no sé lo que es. Solo me gustaría saber qué está interceptando los toques.iOS - herramienta de depuración para detectar la vista tocó

me gustaría conectarse a la consola: "Se ha producido tacto a la vista: nameOfSomeUIView"

Respuesta

14

Cada objeto tiene una vista UITouch propiedad descrita como "La vista en la que se produjo inicialmente al tacto." Puede subclase UIWindow y anular el método sendEvent. En su implementación de sendEvent puede llamar al [super sendEvent: event] y luego inspeccionar las propiedades de visualización de todos los toques que pertenecen al evento.

Como consejo general: Compruebe el método hitTest de sus puntos de vista si su UITouches no se comporta como se esperaba. Puede anular este método para ver qué vista debe recibir toques.

+0

He sublimitado UIWindow y he utilizado el tipo de subclase en el delegado de la aplicación. Implementé - (void) sendEvent: (UIEvent *) evento en la subclase, pero nunca se llama. – sol

+0

En realidad, rayar eso, estoy enviando evento ahora. ¿Puede sugerir cómo encontrar qué vista se está tocando? – sol

+0

Descubrí cómo sacar el toque del UIEvent. Puedo obtener la dirección de memoria de la vista que se toca. Sería bueno si pudiera obtener su nombre. – sol

Cuestiones relacionadas