---
title: UITextViewDelegate
framework: uikit
role: symbol
role_heading: Protocol
path: uikit/uitextviewdelegate
---

# UITextViewDelegate

The methods for receiving editing-related messages for text view objects.

## Declaration

```swift
@MainActor protocol UITextViewDelegate : UIScrollViewDelegate
```

## Overview

Overview All of the methods in this protocol are optional. You can use them in situations where you might want to adjust the text a user is editing (such as in the case of a spell-checker program) or to modify the intended insertion point.

## Topics

### Responding to editing notifications

- [textViewShouldBeginEditing(_:)](uikit/uitextviewdelegate/textviewshouldbeginediting(_:).md)
- [textViewDidBeginEditing(_:)](uikit/uitextviewdelegate/textviewdidbeginediting(_:).md)
- [textViewShouldEndEditing(_:)](uikit/uitextviewdelegate/textviewshouldendediting(_:).md)
- [textViewDidEndEditing(_:)](uikit/uitextviewdelegate/textviewdidendediting(_:).md)

### Responding to text changes

- [textView(_:shouldChangeTextIn:replacementText:)](uikit/uitextviewdelegate/textview(_:shouldchangetextin:replacementtext:).md)
- [textViewDidChange(_:)](uikit/uitextviewdelegate/textviewdidchange(_:).md)

### Responding to selection changes

- [textViewDidChangeSelection(_:)](uikit/uitextviewdelegate/textviewdidchangeselection(_:).md)

### Interacting with text data

- [textView(_:menuConfigurationFor:defaultMenu:)](uikit/uitextviewdelegate/textview(_:menuconfigurationfor:defaultmenu:).md)
- [textView(_:primaryActionFor:defaultAction:)](uikit/uitextviewdelegate/textview(_:primaryactionfor:defaultaction:).md)
- [textView(_:textItemMenuWillDisplayFor:animator:)](uikit/uitextviewdelegate/textview(_:textitemmenuwilldisplayfor:animator:).md)
- [textView(_:textItemMenuWillEndFor:animator:)](uikit/uitextviewdelegate/textview(_:textitemmenuwillendfor:animator:).md)

### Providing a context menu

- [textView(_:editMenuForTextIn:suggestedActions:)](uikit/uitextviewdelegate/textview(_:editmenufortextin:suggestedactions:).md)

### Customizing an edit menu

- [textView(_:willDismissEditMenuWith:)](uikit/uitextviewdelegate/textview(_:willdismisseditmenuwith:).md)
- [textView(_:willPresentEditMenuWith:)](uikit/uitextviewdelegate/textview(_:willpresenteditmenuwith:).md)

### Responding to writing tools interactions

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

### Inserting a Smart Reply suggestion

- [textView(_:insertInputSuggestion:)](uikit/uitextviewdelegate/textview(_:insertinputsuggestion:).md)

### Deprecated

- [textView(_:shouldInteractWith:in:interaction:)](uikit/uitextviewdelegate/textview(_:shouldinteractwith:in:interaction:)-5qha9.md)
- [textView(_:shouldInteractWith:in:interaction:)](uikit/uitextviewdelegate/textview(_:shouldinteractwith:in:interaction:)-622ub.md)
- [textView(_:shouldInteractWith:in:)](uikit/uitextviewdelegate/textview(_:shouldinteractwith:in:)-97zx6.md)
- [textView(_:shouldInteractWith:in:)](uikit/uitextviewdelegate/textview(_:shouldinteractwith:in:)-98tho.md)
- [UITextItemInteraction](uikit/uitextiteminteraction.md)

### Instance Methods

- [textView(_:didBeginFormattingWith:)](uikit/uitextviewdelegate/textview(_:didbeginformattingwith:).md)
- [textView(_:didEndFormattingWith:)](uikit/uitextviewdelegate/textview(_:didendformattingwith:).md)
- [textView(_:editMenuForTextInRanges:suggestedActions:)](uikit/uitextviewdelegate/textview(_:editmenufortextinranges:suggestedactions:).md)
- [textView(_:shouldChangeTextInRanges:replacementText:)](uikit/uitextviewdelegate/textview(_:shouldchangetextinranges:replacementtext:).md)
- [textView(_:willBeginFormattingWith:)](uikit/uitextviewdelegate/textview(_:willbeginformattingwith:).md)
- [textView(_:willEndFormattingWith:)](uikit/uitextviewdelegate/textview(_:willendformattingwith:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [UIScrollViewDelegate](uikit/uiscrollviewdelegate.md)

## See Also

### Text actions and menus

- [UITextItem](uikit/uitextitem.md)
- [UITextItem.MenuConfiguration](uikit/uitextitem/menuconfiguration.md)
