我的要求是,我需要强调字符'#'在运行时在我的UITextView中键入时为红色。我知道NSAttributedString可以实现这一点,并在" shouldChangeTextInRange"中编写逻辑。我不擅长NSAttributedString的概念。
拜托,任何人都可以帮助我解决这个问题。
答案 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;
}