Obtener la palabra en un UILabel / UITextView

Lo que me gustaría hacer es crear un componente de contenedor de texto que pueda indicar cuál es la palabra más cercana cuando hay un toque (es decir, la palabra "detrás" del punto tocado).

Primero, creé una subclase UILabel y anulé el método touchesEnded: withEvent: para determinar el CGPoint tocado. También escribí un método que calcula el "marco" correspondiente (CGRect) de cada palabra del texto usando sizeWithFont: forWidth: lineBreakMode :. Con el CGPoint tocado y este marco, puedo determinar qué palabra se está tocando realmente. Pero el método que calcula el marco solo funciona con texto de una sola línea.

Así que ahora necesito saber qué parte del texto está en una línea dada (es decir, cómo se ha dividido el texto), para poder calcular el margen izquierdo y el margen superior correctos de cada palabra.

¿Alguna idea de cómo puedo obtener esto? ¿O tal vez tiene una solución más sencilla para lograr esto? @ Esta publicación desafortunadamente no fue muy útil ... ...

Respuestas a la pregunta(6)

Su respuesta a la pregunta