我在 StackOverflow 上找到了这段代码来突出显示 UITextView 中的关键字
-(IBAction) highlight:(id) sender{
NSMutableAttributedString * string = [[NSMutableAttributedString alloc]initWithString:self.text.text];
NSArray *words=[self.text.text componentsSeparatedByString:@" "];
for (NSString *word in words) {
if ([word hasPrefix:@"@"]) {
NSRange range=[self.text.text rangeOfString:word];
[string addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:range];
}
}
[self.text setAttributedText:string];
}
由于某种原因,它的范围没有完全正确。我可以写出这样的句子:
@Hello this works
,然后我可以按下按钮,它会突出显示@Hello 位但是如果我在@Hello 之后没有输入任何内容,无论如何它都会继续突出显示所有红色。我只能假设它没有正确读取关键字的范围?这是怎么回事?