---
title: NSTextView
framework: appkit
role: symbol
role_heading: Class
path: appkit/nstextview
---

# NSTextView

A view that draws text and handles user interactions with that text.

## Declaration

```swift
class NSTextView
```

## Mentioned in

Customizing Writing Tools behavior for AppKit views Supporting Writing Tools via the pasteboard Adding Writing Tools support to a custom AppKit view Adopting the system text cursor in custom text views

## Overview

Overview The NSTextView class is the front-end class to the AppKit text system. The class draws the text managed by the back-end components and handles user events to select and modify its text, in addition to supporting rich text, attachments, input management, and key binding, and marked text attributes. note: If you need only to implement a simple editable text field, see NSTextField. NSTextView is the principal means to obtain a text object that caters to almost all needs for displaying and managing text at the user interface level. While NSTextView is a subclass of the NSText class — which declares the most general Cocoa interface to the text system — NSTextView adds major features beyond the capabilities of NSText. You can also do more powerful and more creative text manipulation (such as displaying text in a circle) using NSTextStorage, NSTextLayoutManager, NSTextContainer, and related classes. You’re more likely to use the NSTextView class than NSText. It’s also important to remember that NSTextView conforms to a large number of protocols, the methods of which are available to instances of the NSTextView class. NSTextView communicates with its delegate through methods declared both by the NSTextViewDelegate and by its superclass’s protocol, NSTextDelegate. All delegation messages come from the first text view. In macOS 12 and later, if you explicitly call the layoutManager property on a text view or text container, the framework reverts to a compatibility mode that uses NSLayoutManager. The text view also switches to this compatibility mode when it encounters text content that’s not yet supported, such as NSTextTable. About Delegate Methods The NSTextView class communicates with its delegate through methods declared both by the NSTextViewDelegate and by its superclass’s protocol, NSTextDelegate. All delegation messages come from the first text view. Becoming the first responder When the system invokes becomeFirstResponder() on a text view, if the previous first responder was not a text view on the same layout manager as the receiving text view, the receiving text view draws the selection and updates the insertion point if necessary. To make a text view the first responder, call the containing window’s makeFirstResponder(_:) method. Never invoke a text view’s becomeFirstResponder() method directly. Resigning as first responder When the system invokes resignFirstResponder() on a text view, if the object that will become the new first responder is a text view attached to the same layout manager as the receiver, the receiving text view returns true with no further action. Otherwise, it sends a textShouldEndEditing(_:) message to its delegate (if any). If the delegate returns false, the text view returns false. If the delegate returns true, the text view hides the selection highlighting and posts an didEndEditingNotification to the default notification center and then returns true.

## Topics

### Creating a text view

- [init(frame:textContainer:)](appkit/nstextview/init(frame:textcontainer:).md)
- [init(frame:)](appkit/nstextview/init(frame:).md)
- [init(usingTextLayoutManager:)](appkit/nstextview/init(usingtextlayoutmanager:).md)
- [init(coder:)](appkit/nstextview/init(coder:).md)

### Managing the text view’s content

- [delegate](appkit/nstextview/delegate.md)
- [NSTextViewDelegate](appkit/nstextviewdelegate.md)

### Registering services information

- [registerForServices()](appkit/nstextview/registerforservices().md)

### Accessing text system objects

- [stronglyReferencesTextStorage](appkit/nstextview/stronglyreferencestextstorage.md)
- [fieldEditor()](appkit/nstextview/fieldeditor().md)
- [textContainer](appkit/nstextview/textcontainer.md)
- [replaceTextContainer(_:)](appkit/nstextview/replacetextcontainer(_:).md)
- [textContainerInset](appkit/nstextview/textcontainerinset.md)
- [textContainerOrigin](appkit/nstextview/textcontainerorigin.md)
- [invalidateTextContainerOrigin()](appkit/nstextview/invalidatetextcontainerorigin().md)
- [textLayoutManager](appkit/nstextview/textlayoutmanager.md)
- [layoutManager](appkit/nstextview/layoutmanager.md)
- [textContentStorage](appkit/nstextview/textcontentstorage.md)
- [textStorage](appkit/nstextview/textstorage.md)

### Setting graphics attributes

- [backgroundColor](appkit/nstextview/backgroundcolor.md)
- [drawsBackground](appkit/nstextview/drawsbackground.md)
- [allowsDocumentBackgroundColorChange](appkit/nstextview/allowsdocumentbackgroundcolorchange.md)
- [changeDocumentBackgroundColor(_:)](appkit/nstextview/changedocumentbackgroundcolor(_:).md)

### Controlling text display

- [setNeedsDisplay(_:avoidAdditionalLayout:)](appkit/nstextview/setneedsdisplay(_:avoidadditionallayout:).md)
- [shouldDrawInsertionPoint](appkit/nstextview/shoulddrawinsertionpoint.md)
- [drawInsertionPoint(in:color:turnedOn:)](appkit/nstextview/drawinsertionpoint(in:color:turnedon:).md)
- [drawBackground(in:)](appkit/nstextview/drawbackground(in:).md)
- [setConstrainedFrameSize(_:)](appkit/nstextview/setconstrainedframesize(_:).md)
- [cleanUpAfterDragOperation()](appkit/nstextview/cleanupafterdragoperation().md)
- [showFindIndicator(for:)](appkit/nstextview/showfindindicator(for:).md)
- [scrollableDocumentContentTextView()](appkit/nstextview/scrollabledocumentcontenttextview().md)
- [scrollablePlainDocumentContentTextView()](appkit/nstextview/scrollableplaindocumentcontenttextview().md)
- [scrollableTextView()](appkit/nstextview/scrollabletextview().md)

### Inserting text

- [allowedInputSourceLocales](appkit/nstextview/allowedinputsourcelocales.md)
- [insertText(_:)](appkit/nstextview/inserttext(_:).md)

### Setting behavioral attributes

- [allowsUndo](appkit/nstextview/allowsundo.md)
- [isEditable](appkit/nstextview/iseditable.md)
- [isSelectable](appkit/nstextview/isselectable.md)
- [isFieldEditor](appkit/nstextview/isfieldeditor.md)
- [isRichText](appkit/nstextview/isrichtext.md)
- [importsGraphics](appkit/nstextview/importsgraphics.md)
- [setBaseWritingDirection(_:range:)](appkit/nstextview/setbasewritingdirection(_:range:).md)
- [defaultParagraphStyle](appkit/nstextview/defaultparagraphstyle.md)
- [outline(_:)](appkit/nstextview/outline(_:).md)
- [allowsImageEditing](appkit/nstextview/allowsimageediting.md)
- [isAutomaticQuoteSubstitutionEnabled](appkit/nstextview/isautomaticquotesubstitutionenabled.md)
- [toggleAutomaticQuoteSubstitution(_:)](appkit/nstextview/toggleautomaticquotesubstitution(_:).md)
- [isAutomaticLinkDetectionEnabled](appkit/nstextview/isautomaticlinkdetectionenabled.md)
- [toggleAutomaticLinkDetection(_:)](appkit/nstextview/toggleautomaticlinkdetection(_:).md)
- [displaysLinkToolTips](appkit/nstextview/displayslinktooltips.md)
- [isAutomaticTextCompletionEnabled](appkit/nstextview/isautomatictextcompletionenabled.md)
- [toggleAutomaticTextCompletion(_:)](appkit/nstextview/toggleautomatictextcompletion(_:).md)
- [usesAdaptiveColorMappingForDarkAppearance](appkit/nstextview/usesadaptivecolormappingfordarkappearance.md)
- [usesRolloverButtonForSelection](appkit/nstextview/usesrolloverbuttonforselection.md)

### Using text formatting controls

- [usesRuler](appkit/nstextview/usesruler.md)
- [isRulerVisible](appkit/nstextview/isrulervisible.md)
- [usesInspectorBar](appkit/nstextview/usesinspectorbar.md)

### Managing the selection

- [selectedRanges](appkit/nstextview/selectedranges.md)
- [setSelectedRange(_:)](appkit/nstextview/setselectedrange(_:).md)
- [setSelectedRange(_:affinity:stillSelecting:)](appkit/nstextview/setselectedrange(_:affinity:stillselecting:).md)
- [setSelectedRanges(_:affinity:stillSelecting:)](appkit/nstextview/setselectedranges(_:affinity:stillselecting:).md)
- [selectionAffinity](appkit/nstextview/selectionaffinity.md)
- [selectionGranularity](appkit/nstextview/selectiongranularity.md)
- [insertionPointColor](appkit/nstextview/insertionpointcolor.md)
- [updateInsertionPointStateAndRestartTimer(_:)](appkit/nstextview/updateinsertionpointstateandrestarttimer(_:).md)
- [selectedTextAttributes](appkit/nstextview/selectedtextattributes.md)
- [markedTextAttributes](appkit/nstextview/markedtextattributes.md)
- [linkTextAttributes](appkit/nstextview/linktextattributes.md)
- [characterIndexForInsertion(at:)](appkit/nstextview/characterindexforinsertion(at:).md)
- [updateCandidates()](appkit/nstextview/updatecandidates().md)

### Managing the pasteboard

- [preferredPasteboardType(from:restrictedToTypesFrom:)](appkit/nstextview/preferredpasteboardtype(from:restrictedtotypesfrom:).md)
- [readSelection(from:)](appkit/nstextview/readselection(from:).md)
- [readSelection(from:type:)](appkit/nstextview/readselection(from:type:).md)
- [readablePasteboardTypes](appkit/nstextview/readablepasteboardtypes.md)
- [writablePasteboardTypes](appkit/nstextview/writablepasteboardtypes.md)
- [writeSelection(to:type:)](appkit/nstextview/writeselection(to:type:).md)
- [writeSelection(to:types:)](appkit/nstextview/writeselection(to:types:).md)
- [validRequestor(forSendType:returnType:)](appkit/nstextview/validrequestor(forsendtype:returntype:).md)

### Setting text attributes

- [alignJustified(_:)](appkit/nstextview/alignjustified(_:).md)
- [changeAttributes(_:)](appkit/nstextview/changeattributes(_:).md)
- [changeColor(_:)](appkit/nstextview/changecolor(_:).md)
- [setAlignment(_:range:)](appkit/nstextview/setalignment(_:range:).md)
- [typingAttributes](appkit/nstextview/typingattributes.md)
- [useStandardKerning(_:)](appkit/nstextview/usestandardkerning(_:).md)
- [lowerBaseline(_:)](appkit/nstextview/lowerbaseline(_:).md)
- [raiseBaseline(_:)](appkit/nstextview/raisebaseline(_:).md)
- [turnOffKerning(_:)](appkit/nstextview/turnoffkerning(_:).md)
- [loosenKerning(_:)](appkit/nstextview/loosenkerning(_:).md)
- [tightenKerning(_:)](appkit/nstextview/tightenkerning(_:).md)
- [useStandardLigatures(_:)](appkit/nstextview/usestandardligatures(_:).md)
- [turnOffLigatures(_:)](appkit/nstextview/turnoffligatures(_:).md)
- [useAllLigatures(_:)](appkit/nstextview/useallligatures(_:).md)
- [toggleTraditionalCharacterShape(_:)](appkit/nstextview/toggletraditionalcharactershape(_:).md)

### Clicking and pasting

- [clicked(onLink:at:)](appkit/nstextview/clicked(onlink:at:).md)
- [pasteAsPlainText(_:)](appkit/nstextview/pasteasplaintext(_:).md)
- [pasteAsRichText(_:)](appkit/nstextview/pasteasrichtext(_:).md)

### Supporting undo

- [breakUndoCoalescing()](appkit/nstextview/breakundocoalescing().md)
- [isCoalescingUndo](appkit/nstextview/iscoalescingundo.md)

### Customizing subclass behaviors

- [updateFontPanel()](appkit/nstextview/updatefontpanel().md)
- [updateRuler()](appkit/nstextview/updateruler().md)
- [acceptableDragTypes](appkit/nstextview/acceptabledragtypes.md)
- [updateDragTypeRegistration()](appkit/nstextview/updatedragtyperegistration().md)
- [selectionRange(forProposedRange:granularity:)](appkit/nstextview/selectionrange(forproposedrange:granularity:).md)
- [rangeForUserCharacterAttributeChange](appkit/nstextview/rangeforusercharacterattributechange.md)
- [rangesForUserCharacterAttributeChange](appkit/nstextview/rangesforusercharacterattributechange.md)
- [rangeForUserParagraphAttributeChange](appkit/nstextview/rangeforuserparagraphattributechange.md)
- [rangesForUserParagraphAttributeChange](appkit/nstextview/rangesforuserparagraphattributechange.md)
- [rangeForUserTextChange](appkit/nstextview/rangeforusertextchange.md)
- [rangesForUserTextChange](appkit/nstextview/rangesforusertextchange.md)
- [shouldChangeText(in:replacementString:)](appkit/nstextview/shouldchangetext(in:replacementstring:).md)
- [shouldChangeText(inRanges:replacementStrings:)](appkit/nstextview/shouldchangetext(inranges:replacementstrings:).md)
- [didChangeText()](appkit/nstextview/didchangetext().md)
- [smartInsertDeleteEnabled](appkit/nstextview/smartinsertdeleteenabled.md)
- [smartDeleteRange(forProposedRange:)](appkit/nstextview/smartdeleterange(forproposedrange:).md)
- [smartInsert(afterStringFor:replacing:)](appkit/nstextview/smartinsert(afterstringfor:replacing:).md)
- [smartInsert(beforeStringFor:replacing:)](appkit/nstextview/smartinsert(beforestringfor:replacing:).md)
- [smartInsert(for:replacing:before:after:)](appkit/nstextview/smartinsert(for:replacing:before:after:).md)
- [toggleSmartInsertDelete(_:)](appkit/nstextview/togglesmartinsertdelete(_:).md)

### Working with the spelling checker

- [isContinuousSpellCheckingEnabled](appkit/nstextview/iscontinuousspellcheckingenabled.md)
- [spellCheckerDocumentTag](appkit/nstextview/spellcheckerdocumenttag.md)
- [toggleContinuousSpellChecking(_:)](appkit/nstextview/togglecontinuousspellchecking(_:).md)
- [isGrammarCheckingEnabled](appkit/nstextview/isgrammarcheckingenabled.md)
- [toggleGrammarChecking(_:)](appkit/nstextview/togglegrammarchecking(_:).md)
- [setSpellingState(_:range:)](appkit/nstextview/setspellingstate(_:range:).md)

### Working with the sharing service picker

- [orderFrontSharingServicePicker(_:)](appkit/nstextview/orderfrontsharingservicepicker(_:).md)

### Supporting the ruler view

- [rulerView(_:didMove:)](appkit/nstextview/rulerview(_:didmove:).md)
- [rulerView(_:willMove:toLocation:)](appkit/nstextview/rulerview(_:willmove:tolocation:).md)
- [rulerView(_:shouldMove:)](appkit/nstextview/rulerview(_:shouldmove:).md)
- [rulerView(_:didRemove:)](appkit/nstextview/rulerview(_:didremove:).md)
- [rulerView(_:shouldRemove:)](appkit/nstextview/rulerview(_:shouldremove:).md)
- [rulerView(_:didAdd:)](appkit/nstextview/rulerview(_:didadd:).md)
- [rulerView(_:shouldAdd:)](appkit/nstextview/rulerview(_:shouldadd:).md)
- [rulerView(_:willAdd:atLocation:)](appkit/nstextview/rulerview(_:willadd:atlocation:).md)
- [rulerView(_:handleMouseDownWith:)](appkit/nstextview/rulerview(_:handlemousedownwith:).md)

### Dragging

- [dragImageForSelection(with:origin:)](appkit/nstextview/dragimageforselection(with:origin:).md)
- [dragOperation(for:type:)](appkit/nstextview/dragoperation(for:type:).md)
- [dragSelection(with:offset:slideBack:)](appkit/nstextview/dragselection(with:offset:slideback:).md)
- [acceptsGlyphInfo](appkit/nstextview/acceptsglyphinfo.md)

### Speaking text

- [startSpeaking(_:)](appkit/nstextview/startspeaking(_:).md)
- [stopSpeaking(_:)](appkit/nstextview/stopspeaking(_:).md)

### Working with panels

- [usesFontPanel](appkit/nstextview/usesfontpanel.md)
- [usesFindPanel](appkit/nstextview/usesfindpanel.md)
- [performFindPanelAction(_:)](appkit/nstextview/performfindpanelaction(_:).md)
- [orderFrontLinkPanel(_:)](appkit/nstextview/orderfrontlinkpanel(_:).md)
- [orderFrontListPanel(_:)](appkit/nstextview/orderfrontlistpanel(_:).md)
- [orderFrontSpacingPanel(_:)](appkit/nstextview/orderfrontspacingpanel(_:).md)
- [orderFrontTablePanel(_:)](appkit/nstextview/orderfronttablepanel(_:).md)
- [orderFrontSubstitutionsPanel(_:)](appkit/nstextview/orderfrontsubstitutionspanel(_:).md)

### Performing text completion

- [complete(_:)](appkit/nstextview/complete(_:).md)
- [completions(forPartialWordRange:indexOfSelectedItem:)](appkit/nstextview/completions(forpartialwordrange:indexofselecteditem:).md)
- [insertCompletion(_:forPartialWordRange:movement:isFinal:)](appkit/nstextview/insertcompletion(_:forpartialwordrange:movement:isfinal:).md)
- [rangeForUserCompletion](appkit/nstextview/rangeforusercompletion.md)

### Checking and substituting text

- [checkTextInDocument(_:)](appkit/nstextview/checktextindocument(_:).md)
- [checkTextInSelection(_:)](appkit/nstextview/checktextinselection(_:).md)
- [checkText(in:types:options:)](appkit/nstextview/checktext(in:types:options:).md)
- [handleTextCheckingResults(_:forRange:types:options:orthography:wordCount:)](appkit/nstextview/handletextcheckingresults(_:forrange:types:options:orthography:wordcount:).md)
- [enabledTextCheckingTypes](appkit/nstextview/enabledtextcheckingtypes.md)
- [isAutomaticDashSubstitutionEnabled](appkit/nstextview/isautomaticdashsubstitutionenabled.md)
- [toggleAutomaticDashSubstitution(_:)](appkit/nstextview/toggleautomaticdashsubstitution(_:).md)
- [isAutomaticDataDetectionEnabled](appkit/nstextview/isautomaticdatadetectionenabled.md)
- [toggleAutomaticDataDetection(_:)](appkit/nstextview/toggleautomaticdatadetection(_:).md)
- [isAutomaticSpellingCorrectionEnabled](appkit/nstextview/isautomaticspellingcorrectionenabled.md)
- [toggleAutomaticSpellingCorrection(_:)](appkit/nstextview/toggleautomaticspellingcorrection(_:).md)
- [isAutomaticTextReplacementEnabled](appkit/nstextview/isautomatictextreplacementenabled.md)
- [toggleAutomaticTextReplacement(_:)](appkit/nstextview/toggleautomatictextreplacement(_:).md)
- [performValidatedReplacement(in:with:)](appkit/nstextview/performvalidatedreplacement(in:with:).md)

### Getting the writing tools status

- [isWritingToolsActive](appkit/nstextview/iswritingtoolsactive.md)

### Supporting QuickLook

- [updateQuickLookPreviewPanel()](appkit/nstextview/updatequicklookpreviewpanel().md)
- [toggleQuickLookPreviewPanel(_:)](appkit/nstextview/togglequicklookpreviewpanel(_:).md)
- [quickLookPreviewableItems(inRanges:)](appkit/nstextview/quicklookpreviewableitems(inranges:).md)

### Changing layout orientation

- [changeLayoutOrientation(_:)](appkit/nstextview/changelayoutorientation(_:).md)
- [setLayoutOrientation(_:)](appkit/nstextview/setlayoutorientation(_:).md)

### Using the Find Bar

- [usesFindBar](appkit/nstextview/usesfindbar.md)
- [isIncrementalSearchingEnabled](appkit/nstextview/isincrementalsearchingenabled.md)

### Constants

- [NSSelectionGranularity](appkit/nsselectiongranularity.md)
- [NSSelectionAffinity](appkit/nsselectionaffinity.md)
- [NSFindPanelAction](appkit/nsfindpanelaction.md)
- [Input Sources Locale Identifiers](appkit/input-sources-locale-identifiers.md)
- [Find Panel Search Metadata](appkit/find-panel-search-metadata.md)
- [NSFindPanelSubstringMatchType](appkit/nsfindpanelsubstringmatchtype.md)

### Notifications

- [didChangeSelectionNotification](appkit/nstextview/didchangeselectionnotification.md)
- [willChangeNotifyingTextViewNotification](appkit/nstextview/willchangenotifyingtextviewnotification.md)
- [didChangeTypingAttributesNotification](appkit/nstextview/didchangetypingattributesnotification.md)
- [didSwitchToNSLayoutManagerNotification](appkit/nstextview/didswitchtonslayoutmanagernotification.md)
- [willSwitchToNSLayoutManagerNotification](appkit/nstextview/willswitchtonslayoutmanagernotification.md)

### Interacting with the Touch Bar

- [allowsCharacterPickerTouchBarItem](appkit/nstextview/allowscharacterpickertouchbaritem.md)
- [candidateListTouchBarItem](appkit/nstextview/candidatelisttouchbaritem.md)
- [updateTextTouchBarItems()](appkit/nstextview/updatetexttouchbaritems().md)
- [updateTouchBarItemIdentifiers()](appkit/nstextview/updatetouchbaritemidentifiers().md)

### Structures

- [NSTextView.DidBeginEditingMessage](appkit/nstextview/didbegineditingmessage.md)
- [NSTextView.DidChangeMessage](appkit/nstextview/didchangemessage.md)
- [NSTextView.DidChangeSelectionMessage](appkit/nstextview/didchangeselectionmessage.md)
- [NSTextView.DidChangeTypingAttributesMessage](appkit/nstextview/didchangetypingattributesmessage.md)
- [NSTextView.DidEndEditingMessage](appkit/nstextview/didendeditingmessage.md)
- [NSTextView.WillChangeNotifyingTextViewMessage](appkit/nstextview/willchangenotifyingtextviewmessage.md)

### Instance Properties

- [allowedWritingToolsResultOptions](appkit/nstextview/allowedwritingtoolsresultoptions.md)
- [inlinePredictionType](appkit/nstextview/inlinepredictiontype.md)
- [mathExpressionCompletionType](appkit/nstextview/mathexpressioncompletiontype.md)
- [textHighlightAttributes](appkit/nstextview/texthighlightattributes.md)
- [writingToolsBehavior](appkit/nstextview/writingtoolsbehavior.md)

### Instance Methods

- [drawTextHighlightBackground(for:origin:)](appkit/nstextview/drawtexthighlightbackground(for:origin:).md)
- [highlight(_:)](appkit/nstextview/highlight(_:).md)
- [register(_:forTextAttachmentViewProviderType:)](appkit/nstextview/register(_:fortextattachmentviewprovidertype:).md)

## Relationships

### Inherits From

- [NSText](appkit/nstext.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [Copyable](swift/copyable.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Escapable](swift/escapable.md)
- [Hashable](swift/hashable.md)
- [NSAccessibilityElementProtocol](appkit/nsaccessibilityelementprotocol.md)
- [NSAccessibilityNavigableStaticText](appkit/nsaccessibilitynavigablestatictext.md)
- [NSAccessibilityProtocol](appkit/nsaccessibilityprotocol.md)
- [NSAccessibilityStaticText](appkit/nsaccessibilitystatictext.md)
- [NSAnimatablePropertyContainer](appkit/nsanimatablepropertycontainer.md)
- [NSAppearanceCustomization](appkit/nsappearancecustomization.md)
- [NSCandidateListTouchBarItemDelegate](appkit/nscandidatelisttouchbaritemdelegate.md)
- [NSChangeSpelling](appkit/nschangespelling.md)
- [NSCoding](foundation/nscoding.md)
- [NSColorChanging](appkit/nscolorchanging.md)
- [NSDraggingDestination](appkit/nsdraggingdestination.md)
- [NSDraggingSource](appkit/nsdraggingsource.md)
- [NSIgnoreMisspelledWords](appkit/nsignoremisspelledwords.md)
- [NSMenuItemValidation](appkit/nsmenuitemvalidation.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSStandardKeyBindingResponding](appkit/nsstandardkeybindingresponding.md)
- [NSTextContent](appkit/nstextcontent.md)
- [NSTextInput](appkit/nstextinput.md)
- [NSTextInputClient](appkit/nstextinputclient.md)
- [NSTextLayoutOrientationProvider](appkit/nstextlayoutorientationprovider.md)
- [NSTextViewportLayoutControllerDelegate](appkit/nstextviewportlayoutcontrollerdelegate.md)
- [NSTouchBarDelegate](appkit/nstouchbardelegate.md)
- [NSTouchBarProvider](appkit/nstouchbarprovider.md)
- [NSUserActivityRestoring](appkit/nsuseractivityrestoring.md)
- [NSUserInterfaceItemIdentification](appkit/nsuserinterfaceitemidentification.md)
- [NSUserInterfaceValidations](appkit/nsuserinterfacevalidations.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Text views

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