It seems to me like this functionality would make more sense inside the TextLayer itself.  The rendered would instead ask the TextLayer what column and row a particular x,y belong to.  You could add an alternative iteration/exit condition of measureText that would measure up to a given width and return the column.