0

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

- (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 包含点击的文本,我只想突出显示该字符串或使用核心图形或类似的东西在该文本上方绘制颜色。可能吗?提前致谢

4

2 回答 2

2

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

幸运的是,少数、骄傲和勇敢的人响应了号召,DTCoreText诞生了。

至于实际的选择,因为 UITextView 从 iOS 3.2 开始就符合 UITextInput,所以您可以使用和设置selectedTextRange.

于 2012-05-22T04:11:05.750 回答
0

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

如果 forwardString 在 a 中,UILabel或者UITextView您可以通过设置textColor属性为其中的文本着色。例如,如果您有一个UILabel被叫lbl,您可以使用以下方法设置颜色:

lbl.textColor = [UIColor redColor];
于 2012-05-22T04:21:24.337 回答