yytextview设置双#变色
时间: 2023-08-04 15:09:34 浏览: 147
要实现在 YYTextView 中输入双 # 后将其变色,你可以通过实现 YYTextViewDelegate 的 `textView:shouldChangeTextInRange:replacementText:` 方法来实现。具体代码如下:
```
- (BOOL)textView:(YYTextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc] initWithAttributedString:textView.attributedText];
[attributedText replaceCharactersInRange:range withString:text];
textView.attributedText = attributedText;
// 查找双 # 的位置
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"##" options:kNilOptions error:nil];
NSArray *matches = [regex matchesInString:textView.text options:kNilOptions range:NSMakeRange(0, textView.text.length)];
for (NSTextCheckingResult *result in matches) {
NSRange matchRange = result.range;
[attributedText addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:matchRange];
}
return YES;
}
```
这段代码中,我们首先用 NSMutableAttributedString 替换 textView 的 attributedText,然后使用 NSRegularExpression 查找双 # 的位置,并将其对应的文本区域的字体颜色设置为红色。你可以根据实际需求修改改变色的颜色。