2012-01-04 169 views
0

我想在CoreText使用UIMenuController,但我不能选择的话,我想我必须计算的话坐标,但坐标不能与NSRange.Is有没有办法解决任何功能对应它?CoreText,复制和粘贴

对不起我的英文不好〜 这里是我的代码

CFArrayRef lines = CTFrameGetLines(leftFrame); 
CFIndex i, total = CFArrayGetCount(lines); 


CGFloat y; 
for (i = 0; i < total; i++) { 
    CGPoint origins; 
    CTFrameGetLineOrigins(leftFrame, CFRangeMake(i, 1), &origins); 


    CTLineRef line = (CTLineRef)CFArrayGetValueAtIndex(lines, i); 

    y = self.bounds.origin.y + self.bounds.size.height - origins.y; 

    //CTLineDraw(line, UIGraphicsGetCurrentContext()); 
    CFArrayRef runs = CTLineGetGlyphRuns(line); 
    CFIndex r, runsTotal = CFArrayGetCount(runs); 
    //NSLog(@"runsTotal = %d",runsTotal); 
    for (r = 0; r < runsTotal; r++) { 

     CGRect runBounds = CTRunGetImageBounds(CFArrayGetValueAtIndex(runs, r), context, CFRangeMake(0, 0)); 

     NSLog(@"runBounds.x = %f,runBounds.y = %f",runBounds.origin.x,runBounds.origin.y); 
     CFIndex index = CTRunGetStringRange(CFArrayGetValueAtIndex(runs, r)).location; 

     //NSLog(@"%d",index); 

    } 
} 

回答

0

核心文本不支持文本选择,你需要自己做,请按照EGOTextView为例