---
title: UITextInputDelegate
framework: uikit
role: symbol
role_heading: Protocol
path: uikit/uitextinputdelegate
---

# UITextInputDelegate

An intermediary between a document and the text input system.

## Declaration

```swift
@MainActor protocol UITextInputDelegate : NSObjectProtocol
```

## Mentioned in

Handling text interactions in custom keyboards

## Overview

Overview A UITextInputDelegate conveys notifications of pending or transpired changes in text and selection in the document. UIKit provides a private text input delegate, which it assigns at runtime to the inputDelegate property of the object whose class adopts the UITextInput protocol.

## Topics

### Notifying the delegate of textual changes

- [textWillChange(_:)](uikit/uitextinputdelegate/textwillchange(_:).md)
- [textDidChange(_:)](uikit/uitextinputdelegate/textdidchange(_:).md)

### Notifying the delegate of selection changes

- [selectionWillChange(_:)](uikit/uitextinputdelegate/selectionwillchange(_:).md)
- [selectionDidChange(_:)](uikit/uitextinputdelegate/selectiondidchange(_:).md)

### Notifying the delegate of conversation changes

- [conversationContext(_:didChange:)](uikit/uitextinputdelegate/conversationcontext(_:didchange:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

### Conforming Types

- [UIInputViewController](uikit/uiinputviewcontroller.md)

## See Also

### Text input

- [UITextInput](uikit/uitextinput.md)
- [UIKeyInput](uikit/uikeyinput.md)
- [UITextInputTraits](uikit/uitextinputtraits.md)
- [UITextInputContext](uikit/uitextinputcontext.md)
- [UITextInputMode](uikit/uitextinputmode.md)
- [UITextInputAssistantItem](uikit/uitextinputassistantitem.md)
- [UIDictationPhrase](uikit/uidictationphrase.md)
