---
title: NSTextViewDelegate
framework: appkit
role: symbol
role_heading: Protocol
path: appkit/nstextviewdelegate
---

# NSTextViewDelegate

A set of optional methods that text view delegates can use to manage selection, set text attributes, work with the spell checker, and more.

## Declaration

```swift
protocol NSTextViewDelegate : NSTextDelegate
```

## Topics

### Accessing Text System Objects

- [undoManager(for:)](appkit/nstextviewdelegate/undomanager(for:).md)

### Controlling Display

- [textView(_:willDisplayToolTip:forCharacterAt:)](appkit/nstextviewdelegate/textview(_:willdisplaytooltip:forcharacterat:).md)

### Supporting Quick Look

- [textView(_:urlForContentsOf:at:)](appkit/nstextviewdelegate/textview(_:urlforcontentsof:at:).md)

### Managing the Selection

- [textView(_:willChangeSelectionFromCharacterRange:toCharacterRange:)](appkit/nstextviewdelegate/textview(_:willchangeselectionfromcharacterrange:tocharacterrange:).md)
- [textView(_:willChangeSelectionFromCharacterRanges:toCharacterRanges:)](appkit/nstextviewdelegate/textview(_:willchangeselectionfromcharacterranges:tocharacterranges:).md)
- [textViewDidChangeSelection(_:)](appkit/nstextviewdelegate/textviewdidchangeselection(_:).md)
- [textView(_:candidates:forSelectedRange:)](appkit/nstextviewdelegate/textview(_:candidates:forselectedrange:).md)
- [textView(_:candidatesForSelectedRange:)](appkit/nstextviewdelegate/textview(_:candidatesforselectedrange:).md)
- [textView(_:shouldSelectCandidateAt:)](appkit/nstextviewdelegate/textview(_:shouldselectcandidateat:).md)
- [textView(_:shouldUpdateTouchBarItemIdentifiers:)](appkit/nstextviewdelegate/textview(_:shouldupdatetouchbaritemidentifiers:).md)

### Managing the Pasteboard

- [textView(_:writablePasteboardTypesFor:at:)](appkit/nstextviewdelegate/textview(_:writablepasteboardtypesfor:at:).md)
- [textView(_:write:at:to:type:)](appkit/nstextviewdelegate/textview(_:write:at:to:type:).md)

### Setting Text Attributes

- [textView(_:shouldChangeTextIn:replacementString:)](appkit/nstextviewdelegate/textview(_:shouldchangetextin:replacementstring:).md)
- [textView(_:shouldChangeTextInRanges:replacementStrings:)](appkit/nstextviewdelegate/textview(_:shouldchangetextinranges:replacementstrings:).md)
- [textView(_:shouldChangeTypingAttributes:toAttributes:)](appkit/nstextviewdelegate/textview(_:shouldchangetypingattributes:toattributes:).md)
- [textViewDidChangeTypingAttributes(_:)](appkit/nstextviewdelegate/textviewdidchangetypingattributes(_:).md)

### Clicking and Pasting

- [textView(_:clickedOn:in:at:)](appkit/nstextviewdelegate/textview(_:clickedon:in:at:).md)
- [textView(_:doubleClickedOn:in:at:)](appkit/nstextviewdelegate/textview(_:doubleclickedon:in:at:).md)
- [textView(_:clickedOnLink:at:)](appkit/nstextviewdelegate/textview(_:clickedonlink:at:).md)

### Working With the Spelling Checker

- [textView(_:shouldSetSpellingState:range:)](appkit/nstextviewdelegate/textview(_:shouldsetspellingstate:range:).md)
- [textView(_:willCheckTextIn:options:types:)](appkit/nstextviewdelegate/textview(_:willchecktextin:options:types:).md)
- [textView(_:didCheckTextIn:types:options:results:orthography:wordCount:)](appkit/nstextviewdelegate/textview(_:didchecktextin:types:options:results:orthography:wordcount:).md)

### Responding to writing tools interactions

- [textViewWritingToolsWillBegin(_:)](appkit/nstextviewdelegate/textviewwritingtoolswillbegin(_:).md)
- [textViewWritingToolsDidEnd(_:)](appkit/nstextviewdelegate/textviewwritingtoolsdidend(_:).md)
- [textView(_:writingToolsIgnoredRangesInEnclosingRange:)](appkit/nstextviewdelegate/textview(_:writingtoolsignoredrangesinenclosingrange:).md)

### Dragging

- [textView(_:draggedCell:in:event:at:)](appkit/nstextviewdelegate/textview(_:draggedcell:in:event:at:).md)

### Completing text

- [textView(_:completions:forPartialWordRange:indexOfSelectedItem:)](appkit/nstextviewdelegate/textview(_:completions:forpartialwordrange:indexofselecteditem:).md)

### Displaying the sharing service picker

- [textView(_:willShow:forItems:)](appkit/nstextviewdelegate/textview(_:willshow:foritems:).md)

### Performing Commands

- [textView(_:doCommandBy:)](appkit/nstextviewdelegate/textview(_:docommandby:).md)

### Contextual Menu Management

- [textView(_:menu:for:at:)](appkit/nstextviewdelegate/textview(_:menu:for:at:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSTextDelegate](appkit/nstextdelegate.md)

### Conforming Types

- [NSOutlineView](appkit/nsoutlineview.md)
- [NSTableView](appkit/nstableview.md)

## See Also

### Text views

- [NSTextField](appkit/nstextfield.md)
- [NSTextFieldDelegate](appkit/nstextfielddelegate.md)
- [NSTextView](appkit/nstextview.md)
- [NSTextDelegate](appkit/nstextdelegate.md)
- [NSText](appkit/nstext.md)
