我需要更改保留在 textView 中的文本中某些特定单词的背景颜色。类似于当您搜索单词时在 Firefox 中发生的事情......所以假设我有一个带有此文本的 textView
“一个男人坐在我的门廊前,另一个男人在叫他”
我想将背景颜色更改为单词的 2 次出现
“男人”
......我怎么能这样做?我知道有 NSAttributedString 可以做这种事情,但我不明白如何只修改一些特定的单词......在我发现谷歌搜索的例子中,只有如何更改前 5 个字符或类似这样的东西的例子...
我需要更改保留在 textView 中的文本中某些特定单词的背景颜色。类似于当您搜索单词时在 Firefox 中发生的事情......所以假设我有一个带有此文本的 textView
“一个男人坐在我的门廊前,另一个男人在叫他”
我想将背景颜色更改为单词的 2 次出现
“男人”
......我怎么能这样做?我知道有 NSAttributedString 可以做这种事情,但我不明白如何只修改一些特定的单词......在我发现谷歌搜索的例子中,只有如何更改前 5 个字符或类似这样的东西的例子...
尝试这个:
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++;
}
}