0

我有以下代码可以运行:

        CFArrayRef runs = CTLineGetGlyphRuns(line);

        for(int j = 0; j < CFArrayGetCount(runs); j++)
        //for(id runObj in (__bridge NSArray*)CTLineGetGlyphRuns(line))
        {
            CTRunRef run = CFArrayGetValueAtIndex(runs, j);
}

我需要做的是获取包含此运行的实际字符串。如果我得到字形,那么这些不是实际字符,有没有办法例如获取一个包含给定 ctrun 的实际文本的 nsstring?谢谢

4

2 回答 2

4
CTRunRef run = (CTRunRef)runObj;          
CFRange runRange = CTRunGetStringRange(run);
[[_attributedString attributedSubstringFromRange:NSMakeRange(runRange.location, runRange.length)] string]
于 2012-08-23T23:30:37.490 回答
1

不,没有办法取回在创建CTRun. 您的程序应该已经知道这些信息,因为它创建了CTFrame,CTLineCTRun来自属性字符串。

于 2012-08-12T17:21:55.587 回答