2012-03-13 2 views
0

Я новичок в основном тексте. Есть ли способ узнать, существует ли какой-либо NSRange символов в NSAttributedString на нескольких строках (CTLine)?Несколько CTLine для NSRange

Что я делаю, это настройка NSAttributedString, а затем создание набора фреймов с этой строкой. Строка может быть разной длины, и мне интересно, как найти диапазон (например, фразу) на нескольких строках. Поскольку это переменная длина строки, я бы предпочел не устанавливать каждую отдельную строку, если можно.

Спасибо!

ответ

1

Таким образом, вы должны использовать следующие функции для того, чтобы получить линии-х:

После того, как вы получите CTFrameRef от framesetter, вам необходимо позвонить:

CFArrayRef lines = CTFrameGetLines (frame); 

затем, чтобы увидеть, как много линий есть, подсчет строк в массиве:

CFIndex numLines = CFArrayGetCount(lines); 

Если вам необходимо знать точный диапазон символов (от исходной строки) в строке (строка 0 в данном случае), использование:

CFRange range = CTLineGetStringRange(CFArrayGetValueAtIndex(lines, 0)); 
Смежные вопросы