Instance Method


Tracks changes made to the receiver, allowing the text storage to record the full extent of changes made.


- (void)edited:(NSTextStorageEditActions)editedMask range:(NSRange)editedRange changeInLength:(NSInteger)delta;



A mask specifying the nature of the changes. The value is made by combining with the C bitwise OR operator the options described in NSTextStorageEditActions.


The extent of characters affected before the change took place.


The number of characters added to or removed from oldRange. If no characters where edited as noted by mask, its value is irrelevant and undefined. For example, when replacing “The” with “Several” in the string “The files couldn’t be saved”, oldRange is {0, 3} and lengthChange is 4.


This method invokes processEditing if there are no outstanding beginEditing calls. NSTextStorage invokes this method automatically each time it makes a change to its attributed string. Subclasses that override or add methods that alter their attributed strings directly should invoke this method after making those changes; otherwise you should not invoke this method. The information accumulated with this method is then used in an invocation of processEditing to report the affected portion of the receiver.

The methods for querying changes, editedRange and changeInLength, indicate the extent of characters affected after the change. This method expects the characters before the change because that information is readily available as the argument to whatever method performs the change (such as replaceCharactersInRange:withString:).

See Also

Handling Text Editing Messages

- ensureAttributesAreFixedInRange:

Ensures that attributes are fixed in the given range.


A Boolean value indicating whether the text storage object fixes attributes lazily.

- invalidateAttributesInRange:

Invalidates attributes in the specified range.

- processEditing

Cleans up changes made to the receiver and notifies its delegate and layout managers of changes.