---
title: UIWritingToolsCoordinator
framework: uikit
role: symbol
role_heading: Class
path: uikit/uiwritingtoolscoordinator
---

# UIWritingToolsCoordinator

An object that manages interactions between Writing Tools and your custom text view.

## Declaration

```swift
@MainActor class UIWritingToolsCoordinator
```

## Mentioned in

Adding Writing Tools support to a custom UIKit view

## Overview

Overview Add a UIWritingToolsCoordinator object to a custom view when you want to add Writing Tools support to that view. The coordinator manages interactions between your view and the Writing Tools UI and back-end capabilities. When creating a coordinator, you supply a delegate object to respond to requests from the system and provide needed information. Your delegate delivers your view’s text to Writing Tools, incorporates suggested changes back into your text storage, and supports the animations that Writing Tools creates to show the state of an operation. Create the UIWritingToolsCoordinator object when setting up your UI, and initialize it with a custom object that adopts the UIWritingToolsCoordinator.Delegate protocol. Add the coordinator to your view using the addInteraction(_:) method. When a coordinator is present on a view, the system adds UI elements to initiate Writing Tools operations. When defining the delegate, choose an object from your app that has access to your view and its text storage. You can adopt the UIWritingToolsCoordinator.Delegate protocol in the view itself, or in another type that your view uses to manage content. During the interactions with Writing Tools, the delegate gets and sets the contents of the view’s text storage and supports Writing Tools behaviors. note: You don’t need to create an UIWritingToolsCoordinator  object if you display text using a UITextView, NSTextView, Text, TextField, or TextEditor view. Those views already include the required support to handle Writing Tools interactions.

## Topics

### Creating a coordinator object

- [init(delegate:)](uikit/uiwritingtoolscoordinator/init(delegate:).md)

### Checking the availability of Writing Tools

- [isWritingToolsAvailable](uikit/uiwritingtoolscoordinator/iswritingtoolsavailable.md)

### Managing Writing Tools interactions

- [delegate](uikit/uiwritingtoolscoordinator/delegate-swift.property.md)
- [UIWritingToolsCoordinator.Delegate](uikit/uiwritingtoolscoordinator/delegate-swift.protocol.md)

### Getting the host views for effects

- [effectContainerView](uikit/uiwritingtoolscoordinator/effectcontainerview.md)
- [decorationContainerView](uikit/uiwritingtoolscoordinator/decorationcontainerview.md)

### Configuring the experience

- [preferredBehavior](uikit/uiwritingtoolscoordinator/preferredbehavior.md)
- [behavior](uikit/uiwritingtoolscoordinator/behavior.md)
- [preferredResultOptions](uikit/uiwritingtoolscoordinator/preferredresultoptions.md)
- [resultOptions](uikit/uiwritingtoolscoordinator/resultoptions.md)

### Reporting changes to Writing Tools

- [updateRange(_:with:reason:forContextWithIdentifier:)](uikit/uiwritingtoolscoordinator/updaterange(_:with:reason:forcontextwithidentifier:).md)
- [updateForReflowedTextInContextWithIdentifier(_:)](uikit/uiwritingtoolscoordinator/updateforreflowedtextincontextwithidentifier(_:).md)
- [UIWritingToolsCoordinator.TextUpdateReason](uikit/uiwritingtoolscoordinator/textupdatereason.md)

### Managing the current state

- [stopWritingTools()](uikit/uiwritingtoolscoordinator/stopwritingtools().md)
- [state](uikit/uiwritingtoolscoordinator/state-swift.property.md)
- [UIWritingToolsCoordinator.State](uikit/uiwritingtoolscoordinator/state-swift.enum.md)

### Getting the supporting types

- [UIWritingToolsCoordinator.ContextScope](uikit/uiwritingtoolscoordinator/contextscope.md)
- [UIWritingToolsCoordinator.TextReplacementReason](uikit/uiwritingtoolscoordinator/textreplacementreason.md)
- [UIWritingToolsCoordinator.TextAnimation](uikit/uiwritingtoolscoordinator/textanimation.md)

### Instance Properties

- [includesTextListMarkers](uikit/uiwritingtoolscoordinator/includestextlistmarkers.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)
- [UIInteraction](uikit/uiinteraction.md)

## See Also

### Writing Tools for custom views

- [Adding Writing Tools support to a custom UIKit view](uikit/adding-writing-tools-support-to-a-custom-uiview.md)
- [UIWritingToolsCoordinator.Delegate](uikit/uiwritingtoolscoordinator/delegate-swift.protocol.md)
- [UIWritingToolsCoordinator.Context](uikit/uiwritingtoolscoordinator/context.md)
- [UIWritingToolsCoordinator.AnimationParameters](uikit/uiwritingtoolscoordinator/animationparameters.md)
