---
title: "runModalPrintOperation(_:delegate:didRun:contextInfo:)"
framework: appkit
role: symbol
role_heading: Instance Method
path: "appkit/nsdocument/runmodalprintoperation(_:delegate:didrun:contextinfo:)"
---

# runModalPrintOperation(_:delegate:didRun:contextInfo:)

Runs the specified print operation modally.

## Declaration

```swift
func runModalPrintOperation(_ printOperation: NSPrintOperation, delegate: Any?, didRun didRunSelector: Selector?, contextInfo: UnsafeMutableRawPointer?)
```

## Parameters

- `printOperation`: The print operation to run.
- `delegate`: The delegate to which the selector message is sent.
- `didRunSelector`: The selector of the message sent to the delegate.
- `contextInfo`: Object passed with the callback to provide any additional context information.

## Discussion

Discussion Overrides of printShowingPrintPanel: can invoke this method. When the panel is dismissed, delegate is sent a didRunSelector message. Pass the contextInfo object with the callback. The didRunSelector callback method should have the following signature: - (void)documentDidRunModalPrintOperation:(NSDocument *)document  success:(BOOL)success  contextInfo:(void *)contextInfo

## See Also

### Printing the Document

- [printInfo](appkit/nsdocument/printinfo.md)
- [preparePageLayout(_:)](appkit/nsdocument/preparepagelayout(_:).md)
- [runModalPageLayout(with:delegate:didRun:contextInfo:)](appkit/nsdocument/runmodalpagelayout(with:delegate:didrun:contextinfo:).md)
- [shouldChangePrintInfo(_:)](appkit/nsdocument/shouldchangeprintinfo(_:).md)
- [print(withSettings:showPrintPanel:delegate:didPrint:contextInfo:)](appkit/nsdocument/print(withsettings:showprintpanel:delegate:didprint:contextinfo:).md)
- [printOperation(withSettings:)](appkit/nsdocument/printoperation(withsettings:).md)
- [pdfPrintOperation](appkit/nsdocument/pdfprintoperation.md)
- [saveToPDF(_:)](appkit/nsdocument/savetopdf(_:).md)
