我刚接触核心文本。有没有办法找出NSAttributedString中的某个字符NSRange是否在多行上(CTLine)?
我要做的是设置NSAttributedString,然后使用该字符串创建框架设置。字符串可以有不同的长度,我想知道如何确定一个范围(即一个短语)是否在多行上。因为它是一个长度可变的字符串,所以如果可以的话,我宁愿不设置每一行。
谢谢!
发布于 2012-03-14 23:15:27
因此,您需要使用以下函数来获取该行的:
从framesetter获取CTFrameRef后,需要调用:
CFArrayRef lines = CTFrameGetLines (frame);
然后,要查看有多少行,请计算数组中的行数:
CFIndex numLines = CFArrayGetCount(lines);
如果您需要知道一行(在本例中为第0行)中字符的确切范围(来自原始字符串),请使用:
CFRange range = CTLineGetStringRange(CFArrayGetValueAtIndex( lines, 0));
https://stackoverflow.com/questions/9690662
复制相似问题