В моем приложении я рисую собственный фон под строками текста в UITextView
. Для этого я использую boundingRect(forGlyphRange:in:)
метод NSLayoutManager
. Хорошо работает для языков LTR (латинский, кириллица, китайский и т. Д.):
Но если я использую его для текстов RTL (иврит, фарси и т. Д.), Метод возвращает неправильный ограничивающий прямоугольник (см. Отступы на левом краю):
Кажется, что эти дополнительные отступы имеют некоторую логику. Первый символ определяет размер отступа для строки:
В чем причина такого дополнительного заполнения и как получить правильный ограничивающий прямоугольник?
Вот демоверсия: https://www.dropbox.com/s/bpsr7bhhd7gqm2z/hebrew.zip?dl=0
UPD: похоже, эта функция дает неверный результат для всех алфавитов, которые используют, я не знаю, как она называется, мутирующие символы. Деванагари, например: