---
title: PaperMarkupViewController
framework: paperkit
role: symbol
role_heading: Class
path: paperkit/papermarkupviewcontroller
---

# PaperMarkupViewController

A view controller for interactively creating and showing markup.

## Declaration

```swift
@MainActor @objc @preconcurrency class PaperMarkupViewController
```

## Mentioned in

Integrating PaperKit into your app

## Overview

Overview Properties are observable, so to save markup changes to disk, iterate over the changes to markup. let markups = Observations.untilFinished { [weak paperViewController] in     if let markup = paperViewController?.markup {         return .next(markup)     }     return .finish } Task { [weak self] in     for await newMarkup in markups {         self?.save(model)     } }

## Topics

### Creating a view controller

- [init(markup:supportedFeatureSet:)](paperkit/papermarkupviewcontroller/init(markup:supportedfeatureset:).md)

### Displaying markup

- [markup](paperkit/papermarkupviewcontroller/markup.md)
- [contentView](paperkit/papermarkupviewcontroller/contentview-4aeda.md)
- [contentView](paperkit/papermarkupviewcontroller/contentview-4hbkf.md)
- [supportedFeatureSet](paperkit/papermarkupviewcontroller/supportedfeatureset.md)

### Editing markup

- [isEditable](paperkit/papermarkupviewcontroller/iseditable.md)
- [drawingTool](paperkit/papermarkupviewcontroller/drawingtool.md)
- [isRulerActive](paperkit/papermarkupviewcontroller/isruleractive.md)

### Controlling touch input

- [directTouchMode](paperkit/papermarkupviewcontroller/directtouchmode.md)
- [directTouchAutomaticallyDraws](paperkit/papermarkupviewcontroller/directtouchautomaticallydraws.md)
- [indirectPointerTouchMode](paperkit/papermarkupviewcontroller/indirectpointertouchmode.md)
- [PaperMarkupViewController.TouchMode](paperkit/papermarkupviewcontroller/touchmode.md)

### Selecting elements

- [selection](paperkit/papermarkupviewcontroller/selection.md)
- [selectedMarkup](paperkit/papermarkupviewcontroller/selectedmarkup.md)
- [suggestedFrameForInserting(contentInFrame:)](paperkit/papermarkupviewcontroller/suggestedframeforinserting(contentinframe:).md)

### Managing adornments

- [adornments](paperkit/papermarkupviewcontroller/adornments.md)
- [adornmentFrame(for:)](paperkit/papermarkupviewcontroller/adornmentframe(for:).md)
- [frame(forAdornmentWithID:)](paperkit/papermarkupviewcontroller/frame(foradornmentwithid:).md)

### Scrolling and zooming

- [scrollConfiguration](paperkit/papermarkupviewcontroller/scrollconfiguration-swift.property.md)
- [PaperMarkupViewController.ScrollConfiguration](paperkit/papermarkupviewcontroller/scrollconfiguration-swift.class.md)
- [contentVisibleFrame](paperkit/papermarkupviewcontroller/contentvisibleframe.md)
- [setContentVisibleFrame(_:animated:)](paperkit/papermarkupviewcontroller/setcontentvisibleframe(_:animated:).md)
- [zoomRange](paperkit/papermarkupviewcontroller/zoomrange.md)

### Responding to changes

- [delegate](paperkit/papermarkupviewcontroller/delegate-swift.property.md)
- [PaperMarkupViewController.Delegate](paperkit/papermarkupviewcontroller/delegate-swift.protocol.md)
- [undoManager](paperkit/papermarkupviewcontroller/undomanager.md)

### Managing first responder status

- [acceptsFirstResponder](paperkit/papermarkupviewcontroller/acceptsfirstresponder.md)
- [canBecomeFirstResponder](paperkit/papermarkupviewcontroller/canbecomefirstresponder.md)

### Managing view lifecycle

- [loadView()](paperkit/papermarkupviewcontroller/loadview().md)
- [viewDidLoad()](paperkit/papermarkupviewcontroller/viewdidload().md)
- [viewDidAppear()](paperkit/papermarkupviewcontroller/viewdidappear().md)
- [viewDidLayout()](paperkit/papermarkupviewcontroller/viewdidlayout().md)

### Deprecated

- [showsVerticalScrollIndicator](paperkit/papermarkupviewcontroller/showsverticalscrollindicator.md)
- [showsHorizontalScrollIndicator](paperkit/papermarkupviewcontroller/showshorizontalscrollindicator.md)

## Relationships

### Inherits From

- [NSViewController](appkit/nsviewcontroller.md)
- [UIViewController](uikit/uiviewcontroller.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [Copyable](swift/copyable.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Escapable](swift/escapable.md)
- [Hashable](swift/hashable.md)
- [MarkupEditViewController.Delegate](paperkit/markupeditviewcontroller/delegate-swift.protocol.md)
- [MarkupToolbarViewController.Delegate](paperkit/markuptoolbarviewcontroller/delegate-swift.protocol.md)
- [NSCoding](foundation/nscoding.md)
- [NSEditor](appkit/nseditor.md)
- [NSExtensionRequestHandling](foundation/nsextensionrequesthandling.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSSeguePerforming](appkit/nssegueperforming.md)
- [NSStandardKeyBindingResponding](appkit/nsstandardkeybindingresponding.md)
- [NSTouchBarProvider](appkit/nstouchbarprovider.md)
- [NSUserActivityRestoring](appkit/nsuseractivityrestoring.md)
- [NSUserInterfaceItemIdentification](appkit/nsuserinterfaceitemidentification.md)
- [Observable](observation/observable.md)
- [PKToolPickerObserver](pencilkit/pktoolpickerobserver.md)
- [UIActivityItemsConfigurationProviding](uikit/uiactivityitemsconfigurationproviding.md)
- [UIAppearanceContainer](uikit/uiappearancecontainer.md)
- [UIContentContainer](uikit/uicontentcontainer.md)
- [UIFocusEnvironment](uikit/uifocusenvironment.md)
- [UIPasteConfigurationSupporting](uikit/uipasteconfigurationsupporting.md)
- [UIResponderStandardEditActions](uikit/uiresponderstandardeditactions.md)
- [UIStateRestoring](uikit/uistaterestoring.md)
- [UITraitChangeObservable](uikit/uitraitchangeobservable-67e94.md)
- [UITraitEnvironment](uikit/uitraitenvironment.md)
- [UIUserActivityRestoring](uikit/uiuseractivityrestoring.md)

## See Also

### View controllers

- [MarkupEditViewController](paperkit/markupeditviewcontroller.md)
- [MarkupToolbarViewController](paperkit/markuptoolbarviewcontroller.md)
