UITextView在键入时动态地为特定字符添加颜色

时间:2014-08-25 19:43:41

标签: ios uitextview nsattributedstring

我的要求是,我需要强调字符'#'在运行时在我的UITextView中键入时为红色。我知道NSAttributedString可以实现这一点,并在" shouldChangeTextInRange"中编写逻辑。我不擅长NSAttributedString的概念。

拜托,任何人都可以帮助我解决这个问题。

1 个答案:

答案 0 :(得分:1)

UITextView有一个属性“typingAttributes”,允许您在需要时更改属性。如果需要,你可以通过bool使下面的代码存储有效。

- (void)viewDidLoad
{
    [super viewDidLoad];

    normalAttrdict = [NSDictionary dictionaryWithObject:[UIColor brownColor] forKey:NSForegroundColorAttributeName];
    highlightAttrdict = [NSDictionary dictionaryWithObject:[UIColor redColor] forKey:NSForegroundColorAttributeName];

}

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if ([text isEqualToString:@"#"]) {
        textView.typingAttributes = highlightAttrdict;
}
else{
    textView.typingAttributes = normalAttrdict;

}

return YES;

}