0

我需要更改保留在 textView 中的文本中某些特定单词的背景颜色。类似于当您搜索单词时在 Firefox 中发生的事情......所以假设我有一个带有此文本的 textView

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

我想将背景颜色更改为单词的 2 次出现

男人

......我怎么能这样做?我知道有 NSAttributedString 可以做这种事情,但我不明白如何只修改一些特定的单词......在我发现谷歌搜索的例子中,只有如何更改前 5 个字符或类似这样的东西的例子...

4

1 回答 1

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++;
    }
}
于 2013-06-15T15:37:13.283 回答