Цель C - Базовый текст, количество символов в строке? - PullRequest
0 голосов
/ 26 июля 2011
  • Учитывая индекс для текущего символа, как я могу определить номер строки, в которой находится выбранный символ?

  • Учитывая CTLine, как я могу определить количество символов в нем?

1 Ответ

1 голос
/ 26 июля 2011

Для первого:

int currentCharacterIndex = 12; // You define this.
CFArrayRef lines = CTFrameGetLines(frame);
int currentLine = 0;
for (CTLineRef line in lines) {
    currentLine++;
    CFRange range = CTLineGetStringRange(line);
    if (currentCharacterIndex > range.location)
        break;
}
// Current line is now the line that the currentCharacterIndex resides at

Для второго:

CFRange range = CTLineGetStringRange(line);
CFIndex length = range.length; // Number of characters

Не могу быть уверен, что это работает, потому что я их не проверял, но стоит попробовать.

...