1
2
3
4
5
6
7
8
9
   if([self shouldChangeTextInRange:selectedRange replacementString:newString])
   {
      if(!hadSelection)
         [self setSelectedRange:NSMakeRange(0, [[self textStorage] length])];
      [self insertText:newString];
      if(hadSelection)
         [self setSelectedRange:NSMakeRange(selectedRange.location, [newString length])];
      [self didChangeText];
   }