Ваша цель не очень хорошая.Вместо того, чтобы разбивать текст на четыре текстовых массива, было бы лучше воспользоваться преимуществами Text Kit и позволить менеджеру раскладки разделить текст на четыре текстовых контейнера (один NSLayoutManager, четыре NSTextContainers).
Это может дажев сочетании с вашим текущим использованием текстового представления для целей отображения: четыре текстовых контейнера могут принадлежать четырем текстовым представлениям, и теперь у вас есть четыре не редактируемых не прокручиваемых текстовых представления, которые автоматически распределяют текст между ними, и выможно просто переключаться между этими текстовыми представлениями.
Вот пример с двумя текстовыми представлениями:
Это два объекта UITextView, управляемых one NSLayoutManager, так что, поскольку текст становится слишком длинным для первого просмотра текста, он автоматически перетекает во второе представление текста.
Если вы действительно хотел, я полагаю, вы могли бы сделать то, что я только что сказал, и затем использовать диспетчер компоновки, чтобы спросить, что он сделал, т.е.читать назад от фрагментов строки до глифов к диапазонам символов и выяснить как разделить текст на четыре текстовых контейнера;но это кажется глупым, если учесть, что проблема уже решена еще до того, как вы начнете это делать.