0
  • 给定当前字符的索引,如何确定所选字符所在的行数?

  • 给定 CTLine 我如何确定其中的字符数?

4

1 回答 1

1

对于第一个:

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

无法确定这些是否有效,因为我没有测试过它们,但值得一试。

于 2011-07-26T18:13:03.303 回答