我一直在努力TextKit
尝试NSTextStorage
让UITextView
某些单词动态格式化。
以下方法在事件的子类中UITextView
并在textDidChange
事件上执行。这样做的原因是它确实检测到何时输入了单词“the”并将其着色为红色,但是单词“the”之后的所有文本也是红色的。目标是只有“the”是红色的。
知道我做错了什么吗?
- (void)highlight {
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\bthe\\b" options:0 error:nil];
NSArray *matches = [regex matchesInString:[self text] options:0 range:NSMakeRange(0, [self.text length])];
for (NSTextCheckingResult *match in matches) {
[self.textStorage beginEditing];
[self.textStorage addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:match.range];
[self.textStorage endEditing];
}
}