是否可以突出显示NSString或为字符串绘制一些颜色

时间:2012-05-22 03:58:28

标签: iphone ios nsstring

我正在使用此代码来获取“。”之间的文本。例如,我有很多文本,如.1这是第一个。这是第二个。这是第四个等等。当我点击第一个分机时,它会显示日志中的第一个文本。代码是

- (void)textViewDidBeginEditing:(UITextView *)textView
{

    [NSTimer scheduledTimerWithTimeInterval:0.001 target:maintextview   selector:@selector(resignFirstResponder) userInfo:nil repeats:NO];
}

- (void)textViewDidEndEditing:(UITextView *)textView
{
    NSRange selectedRange = [textView selectedRange];
    NSString *backString = [maintextview.text substringToIndex:selectedRange.location];
    NSRange backRange = [backString rangeOfString:@"." options:NSBackwardsSearch];
    NSRange backRangee = [backString rangeOfString:@"." options:NSBackwardsSearch];
    int  myRangeLenght = backRangee.location - backRange.location;
    NSRange myStringRange = NSMakeRange (backRange.location, myRangeLenght);
    NSString *forwardString  = [maintextview.text substringFromIndex:backRange.location];
    NSLog(@"%@",[[forwardString componentsSeparatedByString:@"."] objectAtIndex:1]);

}

forwadString包含被点击的文本,我只想突出显示此字符串或使用核心图形或类似的东西在此文本上方绘制颜色。可能吗? 提前谢谢

2 个答案:

答案 0 :(得分:2)

对于我和其他许多人的失望,Apple选择在iOS 3.2之前不实施NSAttributedString,即便如此,所有标准UI元素都无法呈现它们!

幸运的是,少数人,骄傲的人和勇敢的人已经接听了电话,DTCoreText出生了。

对于实际选择,因为UITextView符合iOS 3.2中的UITextInput,您可以使用和设置selectedTextRange

答案 1 :(得分:0)

NSString进行“着色”是不可能的,字符串只是字符的表示,它不包含字体,颜色或样式属性。相反,您需要为将文本绘制到屏幕的UI元素着色。

如果forwardString位于UILabelUITextView中,您可以通过设置textColor属性为其中的文本着色。例如,如果您有UILabel名为lbl,则可以使用以下方式设置颜色:

lbl.textColor = [UIColor redColor];