如何仅将背景更改为textView中的某些单词

时间:2013-06-14 18:07:57

标签: objective-c cocoa nstextview nsattributedstring

我需要更改留在textView中的文本中某些特定单词的背景颜色。当你看到一个单词时,类似于Firefox中发生的事情...所以我想说我有一个带有这个文本的textView

  

“一个男人坐在我的门廊前,另一个男人正在叫他”

我希望将背景颜色更改为单词

的出现次数
  

“的

......我怎么能这样做? 我知道有NSAttributedString来做这种事情,但我无法理解如何只修改一些特定的单词...在我发现的例子中谷歌搜索它只有例子如何更改前5个字符或像这样的事情...

1 个答案:

答案 0 :(得分:0)

试试这个:

NSMutableAttributedString* attrString = [[NSMutableAttributedString alloc] initWithString: @"Your String"];
NSUInteger count = 0;
NSUInteger length = [attrString length];
NSRange range = NSMakeRange(0, length);

while(range.location != NSNotFound)
{
    range = [[attrString string] rangeOfString:@"YOURWORD" options:0 range:range];
    if(range.location != NSNotFound) {
        [attrString addAttribute:NSBackgroundColorAttributeName value:YOURCOLOR range:NSMakeRange(range.location, [word length])];
        range = NSMakeRange(range.location + range.length, length - (range.location + range.length));
        count++;
    }
}