<!--
{
  "availability" : [
    "iOS: 4.2.0 -",
    "iPadOS: 4.2.0 -",
    "macCatalyst: 13.1.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/UIPrintInteractionControllerDelegate",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(pl)UIPrintInteractionControllerDelegate"
  },
  "title" : "UIPrintInteractionControllerDelegate"
}
-->

# UIPrintInteractionControllerDelegate

An optional set of methods that the delegate of the shared print-interaction controller implements.

```
@MainActor protocol UIPrintInteractionControllerDelegate : NSObjectProtocol
```

## Overview

If the application has special requirements for content sizes, it can implement [`printInteractionController(_:choosePaper:)`](/documentation/UIKit/UIPrintInteractionControllerDelegate/printInteractionController(_:choosePaper:)) to return a [`UIPrintPaper`](/documentation/UIKit/UIPrintPaper) object encapsulating the page size and the printing area to use for a print job. If you want more control of the presentation of the printing options, the delegate can return a view controller that owns the printing-options view in an implementation of [`printInteractionControllerParentViewController(_:)`](/documentation/UIKit/UIPrintInteractionControllerDelegate/printInteractionControllerParentViewController(_:)). The delegate can also implement methods that are invoked when the printing user interface is presented and when it is dismissed, and when the print job begins and ends.

## Topics

### Returning a Parent View Controller

[`printInteractionControllerParentViewController(_:)`](/documentation/UIKit/UIPrintInteractionControllerDelegate/printInteractionControllerParentViewController(_:))

Returns a parent view controller for managing the printing-options view.

### Choosing a Paper Size for the Print Job

[`printInteractionController(_:choosePaper:)`](/documentation/UIKit/UIPrintInteractionControllerDelegate/printInteractionController(_:choosePaper:))

Asks the delegate for an object that encapsulates the paper size and printing area for the print job.

[`printInteractionController(_:cutLengthFor:)`](/documentation/UIKit/UIPrintInteractionControllerDelegate/printInteractionController(_:cutLengthFor:))

Asks the delegate for a length to use when cutting the page.

[`printInteractionController(_:chooseCutterBehavior:)`](/documentation/UIKit/UIPrintInteractionControllerDelegate/printInteractionController(_:chooseCutterBehavior:))

Asks the delegate for the cutter behavior for the print job.

### Responding to the Presentation and Dismissal of the Printing Interface

[`printInteractionControllerWillPresentPrinterOptions(_:)`](/documentation/UIKit/UIPrintInteractionControllerDelegate/printInteractionControllerWillPresentPrinterOptions(_:))

Tells the delegate that the device is about to display the printing-options user interface.

[`printInteractionControllerDidPresentPrinterOptions(_:)`](/documentation/UIKit/UIPrintInteractionControllerDelegate/printInteractionControllerDidPresentPrinterOptions(_:))

Tells the delegate that the device has presented the printing-options user interface.

[`printInteractionControllerWillDismissPrinterOptions(_:)`](/documentation/UIKit/UIPrintInteractionControllerDelegate/printInteractionControllerWillDismissPrinterOptions(_:))

Tells the delegate that the device is about to dismiss the printing-options user interface.

[`printInteractionControllerDidDismissPrinterOptions(_:)`](/documentation/UIKit/UIPrintInteractionControllerDelegate/printInteractionControllerDidDismissPrinterOptions(_:))

Tells the delegate that the device is dismissing the printing-options user interface.

### Responding to the Start and End of a Print Job

[`printInteractionControllerWillStartJob(_:)`](/documentation/UIKit/UIPrintInteractionControllerDelegate/printInteractionControllerWillStartJob(_:))

Tells the delegate that the print job is about to start.

[`printInteractionControllerDidFinishJob(_:)`](/documentation/UIKit/UIPrintInteractionControllerDelegate/printInteractionControllerDidFinishJob(_:))

Tells the delegate that the print job has ended.

### Constants

[`UIPrinter.CutterBehavior`](/documentation/UIKit/UIPrinter/CutterBehavior)

Constants that specify the cutter behavior of a roll-fed printer.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)