Adding a Dotted red line under characters in a UITextView

Discussion in 'iOS Programming' started by ashwinr87, Nov 15, 2012.

  1. ashwinr87, Nov 15, 2012
    Last edited: Nov 16, 2012

    ashwinr87 macrumors member

    Joined:
    Mar 9, 2011
    #1
    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 -

    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 -

    Code:
    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;
    It would be great if someone could help me with this and point out what I am missing/doing wrong.
     
  2. ArtOfWarfare macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #2
    You take the string from your text view, copy it, modify the copy, but from what we can see, you never do anything with that copy afterwards.

    I'd suggest adding a line along the lines of

    Code:
    self.textView.attributedText = attrString;
    to the end of what you showed us and see how that works.
     
  3. ashwinr87 thread starter macrumors member

    Joined:
    Mar 9, 2011
    #3
    sorry.. probably I was not clear enough.. I do replace the string in the text view after adding my attributes. That was not the problem I was facing.

    The problem I am facing is that, I am not able to add dotted red lines. All I am able to add is a thick single line.

     

Share This Page