Seleccionar texto programáticamente en UIWebView

Estoy haciendo esta pregunta después de 2 días de investigación. He leído todas las preguntas y respuestas relacionadas en stackoverflow y google (incluyendoesta pregunta, que es muy similar pero sin respuesta) y aún no pudo encontrar una solución. Esperemos que alguien aquí pueda ayudar.

Tengo un UIWebView con algún texto cargado en él. Quiero seleccionar parte del texto mediante programación, como si el usuario lo hubiera presionado por mucho tiempo.

He intentado ejecutar este código javascript como respuesta a un clic:

function selectEl(x,y)
{
    document.designMode = "on";
    var el = document.elementFromPoint(x, y);
    var range = document.createRange();
    range.selectNodeContents(el);
    var sel = document.getSelection();
    sel.removeAllRanges();
    sel.addRange(range);
    document.designMode = "off";
}

Lo he intentado con y sin cambiar designMode a "off" al final de la función. Sé que este código "selecciona" el elemento correcto, porque si ejecuto este comando

document.execCommand("BackColor", false, "#ffffcc");

en realidad resalta el elemento en el que hice clic, pero no causa una selección del texto. ¿Alguna idea sobre cómo lograr esto?

Respuestas a la pregunta(3)

Su respuesta a la pregunta