2 Replies Latest reply: Nov 19, 2012 11:11 AM by araghur
araghur Level 1 (0 points)

I am trying to create my custom spell checker for the UITextView.

To show that a word is misspelled, I need to add the "red dotted line" under the misspelled word. To do that, here is what I thought would work -

I create a dictionary which contains the values for the key NSUnderlineStyleAttributeName. However, what this does is, it does underline the characters but it does not have a dotted pattern. Also, setting the strokeColorAttribute also does not seem to have any effect.

Here is my code -

NSMutableDictionary *misspelledAttributes = [NSMutableDictionary dictionary];

[misspelledAttributes setObject:[NSNumber numberWithInt:kCTUnderlineStyleThick|kCTUnderlinePatternDot] forKey:NSUnderlineStyleAttributeName];

[misspelledAttributes setObject:[UIColor redColor] forKey:NSStrokeColorAttributeName];

To set the attributes to a attributed string for a particular range -

NSMutableAttributedString *attrString = [self.textView.attributedText mutableCopy];

[attrString addAttributes:misspelledAttributes range:wordRange];

self.textView.scrollEnabled = NO;

self.textView.attributedText = attrString;

self.textView.selectedRange = NSMakeRange(NSMaxRange(range), 0);

self.textView.scrollEnabled = YES;