shouldChangeText(inRanges: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.
Declaration
func shouldChangeText(inRanges affectedRanges: [NSValue], replacementStrings: [String]?) -> BoolParameters
- affectedRanges:
An array of ranges to change.
- replacementStrings:
An array of strings containing the characters that replace those in
affectedRanges, one for each range. If only text attributes are being changed,replacementStringsisnil.
Return Value
Discussion
This method checks with the delegate as needed using textShouldBeginEditing(_:) and textView(_:shouldChangeTextInRanges:replacementStrings:).
This method must be invoked at the start of any sequence of user-initiated editing changes. If your subclass of NSTextView implements
that modify the text, make sure to invoke this method to determine whether the change should be made. If the change is allowed, complete the change by invoking the didChangeText() method. If you can’t determine the affected range or replacement string before beginning changes, pass nil for these values.
Special Considerations
If you override this method, you must call super at the beginning of the override.
If the receiver is not editable, this method automatically returns false. This result prevents instances in which a text view could be changed by user actions even though it had been set to be non-editable.
See Also
Related Documentation
Customizing subclass behaviors
updateFontPanel()updateRuler()acceptableDragTypesupdateDragTypeRegistration()selectionRange(forProposedRange:granularity:)rangeForUserCharacterAttributeChangerangesForUserCharacterAttributeChangerangeForUserParagraphAttributeChangerangesForUserParagraphAttributeChangerangeForUserTextChangerangesForUserTextChangeshouldChangeText(in:replacementString:)didChangeText()smartInsertDeleteEnabledsmartDeleteRange(forProposedRange:)