• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
NSTextView & Undo Problems...
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

NSTextView & Undo Problems...


  • Subject: NSTextView & Undo Problems...
  • From: Oliver Cameron <email@hidden>
  • Date: Fri, 28 May 2004 23:32:45 +0100

Hey guys,

What I am doing is inserting some text into a NSTextView using the code below:

- (void)applySnippet:(TagSnippet *)snippet
{
target = [[[NSDocumentController sharedDocumentController] currentDocument] textView];
if (target != nil && snippet != nil)
{
NSRange selectedRange = [target selectedRange];
NSMutableString *text = [[target textStorage] mutableString];
NSMutableString *selectedText = [NSMutableString stringWithString:[text substringWithRange:selectedRange]];
int cursorPosition = [snippet applySnippetToString:selectedText];
cursorPosition += selectedRange.location;
[target replaceCharactersInRange:selectedRange withString:selectedText];
[target setSelectedRange:NSMakeRange(cursorPosition, 0)];
}
}

Now, the text inserts fine, but it seems to cause some undo problems with the NSTextView it was inserted in.

For example, if I first type into my text view some random text, then insert the text, and then type some more after it. If I then place my cursor at the end of the document and try to undo, it'll work until I get to the text I inserted, I then begin to get these messages in the run log:

2004-05-28 23:30:21.753 Tag[2456] *** Assertion failure in -[NSMutableRLEArray objectAtIndex:effectiveRange:], String.subproj/NSAttributedString.m:1009
2004-05-28 23:30:21.756 Tag[2456] *** Assertion failure in -[NSMutableRLEArray objectAtIndex:effectiveRange:], String.subproj/NSAttributedString.m:1009
2004-05-28 23:30:21.857 Tag[2456] Access invalid attribute location 18 (length 18)
2004-05-28 23:30:22.198 Tag[2456] undo: NSUndoManager 0x4aa3b60 is in invalid state, undo was called with too many nested undo groups

If I then try and click in the text view, I get:

2004-05-28 23:30:24.287 Tag[2456] *** NSRunStorage, _NSBlockNumberForIndex(): index (18) beyond array bounds (18)

And can no longer type in the text view. I have tried adding an undo method with undo manager, but I still get the same errors.

Any ideas at all appreciated.

Thanks,
Oliver
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.


  • Prev by Date: Re: reading an NSView scrolling position
  • Next by Date: Re: reading an NSView scrolling position
  • Previous by thread: ClockControlPalette
  • Next by thread: Receiving tracking rectangle events
  • Index(es):
    • Date
    • Thread