---
title: "Disable PDF annotation editing on iOS"
canonical_url: "https://www.nutrient.io/guides/ios/annotations/create-edit-and-remove/disable-editing/"
md_url: "https://www.nutrient.io/guides/ios/annotations/create-edit-and-remove/disable-editing.md"
last_updated: "2026-05-30T02:20:01.301Z"
description: "Learn how to restrict PDF annotation editing on iOS using Nutrient API with various configuration options."
---

# Disable PDF annotation editing for iOS users

The PDF format has standard restrictions — refer to the [secured documents](https://www.nutrient.io/guides/ios/document-security/set-permissions.md) guide for more information. In addition to those built-in restrictions, Nutrient gives you control over how to restrict modifications to annotations.

## Disabling the modification of all annotation types

You can disable all annotation modifications using [`PDFConfiguration`](https://www.nutrient.io/api/ios/documentation/pspdfkitui/pdfconfiguration) by setting the [`editableAnnotationTypes`](https://www.nutrient.io/api/android/nutrient/com.pspdfkit.configuration/-pdf-configuration/-builder/editable-annotation-types.html) property to `nil`. This will prevent users from adding new annotations and editing existing ones:

### SWIFT

```swift

let configuration = PDFConfiguration {
	$0.editableAnnotationTypes = nil
}

```

### OBJECTIVE-C

```objc

PSPDFConfiguration *configuration = [PSPDFConfiguration configurationWithBuilder:^(PSPDFConfigurationBuilder *builder) {
	builder.editableAnnotationTypes = nil;
}];

```

## Enabling modifications only for specific annotation types

You can control which annotation types are editable, and you can specify their types in `editableAnnotationTypes`. For example, you can enable only the modification of ink annotations:

### SWIFT

```swift

let configuration = PDFConfiguration {
	$0.editableAnnotationTypes = [.ink]
}

```

### OBJECTIVE-C

```objc

PSPDFConfiguration *configuration = [PSPDFConfiguration configurationWithBuilder:^(PSPDFConfigurationBuilder *builder) {
	builder.editableAnnotationTypes = [NSSet setWithArray:@[PSPDFAnnotationStringInk]]; // Only ink annotations are editable.
}];

```

## Disabling adding new annotations but enabling modification of existing ones

Hiding your [`PDFViewController`](https://www.nutrient.io/api/ios/documentation/pspdfkitui/pdfviewcontroller)’s [`annotationButtonItem`](https://www.nutrient.io/api/ios/documentation/pspdfkitui/pdfviewcontroller/annotationbuttonitem) from the toolbar will prevent users from adding new annotations, but it won’t stop them from editing or deleting existing ones:

### SWIFT

```swift

// Notice that `pdfController.annotationButtonItem` isn't included.
pdfController.navigationItem.setRightBarButtonItems([pdfController.thumbnailsButtonItem, pdfController.outlineButtonItem, pdfController.searchButtonItem, pdfController.activityButtonItem], for:.document, animated: false)

```

### OBJECTIVE-C

```objc

// Notice that `pdfController.annotationButtonItem` isn't included.
[pdfController.navigationItem setRightBarButtonItems:@[pdfController.thumbnailsButtonItem, pdfController.outlineButtonItem, pdfController.searchButtonItem, pdfController.activityButtonItem] forViewMode:PSPDFViewModeDocument animated:NO];

```

For more information, refer to the guide on [configuring editable/visible annotation types](https://www.nutrient.io/guides/ios/annotations/disable-rendered-annotation-types.md).

## Disabling the modification of a specific annotation

You can disable the modification of a specific annotation by updating its [`flags`](https://www.nutrient.io/api/ios/documentation/pspdfkit/annotation/flags) property to use [`Annotation.Flag.readOnly`](https://www.nutrient.io/api/ios/documentation/pspdfkit/annotation/flag/readonly). For example:

### SWIFT

```swift

// Update the annotation flags.
annotation.flags.update(with:.readOnly)

```

### OBJECTIVE-C

```objc

// Update the annotation flags.
annotation.flags |= ~PSPDFAnnotationFlagReadOnly;

```

For more information, refer to the guide on [annotation flags](https://www.nutrient.io/guides/ios/annotations/annotation-flags.md).

## Disabling adding annotations using menus

You can add annotations using the menu that shows up when you long press on empty space. This menu contains the **Paste** action and tools for creating different annotations. To disable this menu entirely, set the [`isCreateAnnotationMenuEnabled`](https://www.nutrient.io/api/ios/documentation/pspdfkitui/pdfconfiguration/iscreateannotationmenuenabled) configuration property to `false`:

```swift

let configuration = PDFConfiguration {
	$0.isCreateAnnotationMenuEnabled = false
}

```

Text markup annotations can also be created by selecting text. For example, when you select text in a document, you can highlight it. To exclude the highlight tool from the text selection menu, use the [`contentMenuConfiguration`](https://www.nutrient.io/api/ios/documentation/pspdfkitui/pdfconfiguration/contentmenuconfiguration) property:

```swift

let configuration = PDFConfiguration {
    $0.contentMenuConfiguration = ContentMenuConfiguration {
        $0.annotationToolChoices = { _, _, _, defaultChoices in
            defaultChoices.filter { $0!=.highlight }
        }
    }
}

```

To learn more about different menus and how to customize them, refer to our guide on [customizing menus](https://www.nutrient.io/guides/ios/customizing-the-interface/customizing-menus.md).

## Disabling drag and drop

PDFs can be modified using drag and drop. For example, you can drag and drop text, images, and even other PDF documents to create annotations within a document. You can disable drag and drop by configuring your [`DragAndDropConfiguration`](https://www.nutrient.io/api/ios/documentation/pspdfkitui/draganddropconfiguration):

### SWIFT

```swift

let dragAndDropConfiguration = DragAndDropConfiguration {
	$0.acceptedDropTypes = []
	$0.allowedDropTargets = []
}
let configuration = PDFConfiguration {
	$0.dragAndDropConfiguration = dragAndDropConfiguration
}

```

### OBJECTIVE-C

```objc

PSPDFDragAndDropConfiguration *dragAndDropConfiguration = [PSPDFDragAndDropConfiguration configurationWithBuilder:^(PSPDFDragAndDropConfigurationBuilder * builder) {
	builder.acceptedDropTypes = PSPDFDropTypeNone;
	builder.allowedDropTargets = PSPDFDropTargetNone;
}];
PSPDFConfiguration *configuration = [PSPDFConfiguration configurationWithBuilder:^(PSPDFConfigurationBuilder *builder) {
	builder.dragAndDropConfiguration = dragAndDropConfiguration;
}];

```

For more information, refer to the guide on [drag and drop](https://www.nutrient.io/guides/ios/features/drag-and-drop.md).
---

## Related pages

- [Annotations object model on iOS](/guides/ios/annotations/the-annotation-object-model.md)
- [Define annotation behavior with flags on iOS](/guides/ios/annotations/annotation-flags.md)
- [Defining annotation blend modes on iOS](/guides/ios/annotations/annotation-blend-modes.md)
- [Detect changes to PDF annotations in iOS apps](/guides/ios/annotations/detecting-if-annotations-have-changed.md)
- [How to embed files in PDF annotations on iOS](/guides/ios/annotations/create-edit-and-remove/attach-a-file.md)
- [Setting annotation authors on iOS](/guides/ios/annotations/annotation-author-name.md)
- [Image picker: Add image annotations to PDFs on iOS](/guides/ios/miscellaneous/image-picker.md)
- [Annotation state manager on iOS](/guides/ios/annotations/annotation-state-manager.md)
- [Undo and redo annotations on iOS](/guides/ios/features/undo-redo.md)
- [Drag-and-drop annotations on iOS](/guides/ios/annotations/create-edit-and-remove/drag-and-drop.md)
- [Z-index for annotation stacking order on iOS](/guides/ios/annotations/annotation-z-index.md)
- [Programmatically create PDF annotations on iOS](/guides/ios/annotations/programmatically-creating-annotations.md)

