Проблема в том, что большинство текстовых форматов больше не имеют логического номера строки. Текст логически сконфигурирован так, что он переносится в соответствии с физическими размерами элемента отображения пользовательского интерфейса. Визуальная линия постоянно изменяется по мере того, как пользователь изменяет пользовательский интерфейс (размер окна, размер шрифта и т. Д.). Пользовательский интерфейс на iPhone более стабилен, но фундаментальная проблема остается.
Единственное, что вы действительно можете сделать, это сосчитать некоторую логическую структуру в тексте, такую как предложения или абзацы. Если вы имеете дело с кодом, вы можете считать логические блоки каждого конкретного языка.
Предпочтительный способ сделать это в Apple API - использовать один или несколько экземпляров NSScanner для поиска определенных шаблонов в тексте.