Instance Method

smartInsertForString:replacingRange:beforeString:afterString:

Determines whether whitespace needs to be added around the string to preserve proper spacing and punctuation when it replaces the characters in the specified range.

Declaration

- (void)smartInsertForString:(NSString *)pasteString replacingRange:(NSRange)charRangeToReplace beforeString:(NSString * _Nullable *)beforeString afterString:(NSString * _Nullable *)afterString;

Parameters

aString

The string that is replacing the characters in charRange.

charRange

The range of characters which aString is replacing.

beforeString

On return, a pointer to the string with the characters that should be added before aString; nil if there are no characters to add, if aString is nil, or if smart insertion and deletion are disabled.

afterString

On return, a pointer to the string with the characters that should be added after aString; nil if there are no characters to add, if aString is nil, or if smart insertion and deletion are disabled.

Discussion

As part of its implementation, this method calls smartInsertAfterStringForString:replacingRange: and smartInsertBeforeStringForString:replacingRange:. To change this method’s behavior, override those two methods instead of this one.

NSTextView uses this method as necessary. You can also use it in implementing your own methods that insert text. To do so, invoke this method with the proper arguments, then insert beforeString, aString, and afterString in order over charRange.

See Also

Methods for Subclasses to Use or Override

- updateFontPanel

Updates the Font panel to contain the font attributes of the selection.

- updateRuler

Updates the ruler view in the receiver’s enclosing scroll view to reflect the selection’s paragraph and marker attributes.

acceptableDragTypes

The data types that the receiver accepts as the destination view of a dragging operation.

- updateDragTypeRegistration

Updates the acceptable drag types of all text views associated with the receiver's layout manager.

- selectionRangeForProposedRange:granularity:

Returns an adjusted selected range based on the selection granularity.

rangeForUserCharacterAttributeChange

The range of characters affected by an action method that changes character (not paragraph) attributes.

rangesForUserCharacterAttributeChange

An array containing the ranges of characters affected by an action method that changes character (not paragraph) attributes.

rangeForUserParagraphAttributeChange

The range of characters affected by an action method that changes paragraph (not character) attributes.

rangesForUserParagraphAttributeChange

An array containing the ranges of characters affected by a method that changes paragraph (not character) attributes.

rangeForUserTextChange

The range of characters affected by a method that changes characters (as opposed to attributes).

rangesForUserTextChange

An array containing the ranges of characters affected by a method that changes characters (as opposed to attributes).

- shouldChangeTextInRange:replacementString:

Initiates a series of delegate messages (and general notifications) to determine whether modifications can be made to the characters and attributes of the receiver’s text.

- shouldChangeTextInRanges:replacementStrings:

Initiates a series of delegate messages (and general notifications) to determine whether modifications can be made to the characters and attributes of the receiver’s text.

- didChangeText

Sends out necessary notifications when a text change completes.

smartInsertDeleteEnabled

A Boolean value that controls whether the receiver inserts or deletes space around selected words so as to preserve proper spacing and punctuation.

- smartDeleteRangeForProposedRange:

Returns an extended range that includes adjacent whitespace that should be deleted along with the proposed range in order to preserve proper spacing and punctuation.

- smartInsertAfterStringForString:replacingRange:

Returns any whitespace that needs to be added after the string to preserve proper spacing and punctuation when the string replaces the characters in the specified range.

- smartInsertBeforeStringForString:replacingRange:

Returns any whitespace that needs to be added before the string to preserve proper spacing and punctuation when the string replaces the characters in the specified range.

- toggleSmartInsertDelete:

Changes the state of smart insert and delete from enabled to disabled and vice versa.