> For the complete documentation index, see [llms.txt](https://docs.apryse.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.apryse.com/ios/changelogs/version-6/v6-10-1-70232.md).

# Version 6.10.1 Changelog (March 28th, 2019)

World's #1 PDF SDK Library for Web, Mobile, Server, Desktop

* Version: 6.10.1.70232
* Release Date: March 28th, 2019
* Built with Xcode 10.1 (10B61)

## New

* New measurements tools: [`PTRulerCreate`](https://sdk.apryse.com/api/ios/Classes/PTRulerCreate.html), [`PTPerimeterCreate`](https://sdk.apryse.com/api/ios/Classes/PTPerimeterCreate.html), and [`PTAreaCreate`](https://sdk.apryse.com/api/ios/Classes/PTAreaCreate.html).
* A new file comparison UI control, the `PTDiffController`, allows two PDF documents to be compared to produce a visual diff. For more information, please see our [`File comparison`](/ios/compare-files/file-comparison-i.md) guide.The file comparison control.

![](https://4149080208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgY6xtY9ZQd9XMpvWlGM0%2Fuploads%2Fgit-blob-2727db11cebe81b27da1067349242ce355ea58cf%2Ffaee6f763f2c48ed2ea67aa5a9c43a3d6fe9a5b4-750x1624.png?alt=media)

* New redaction tools, [`PTRectangleRedactionCreate`](https://sdk.apryse.com/api/ios/Classes/PTRectangleRedactionCreate.html) and [`PTTextRedactionCreate`](https://sdk.apryse.com/api/ios/Classes/PTTextRedactionCreate.html), for creating redaction annotations as well as support for redacting content from a document. Please see our [redaction tool guide](/ios/redaction/redact.md#ui-component) for more information.
* [`PTFormFillTool`](https://sdk.apryse.com/api/ios/Classes/PTFormFillTool.html) now has the option to display buttons above the keyboard while filling text fields to move to the next or previous text field. This feature allows for quick navigation on a page with many text fields. Please see the `displaysInputAccessoryView` property on the `PTFormFillTool` tool class.The form field advance toolbar and buttons for a text field.

![](https://4149080208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgY6xtY9ZQd9XMpvWlGM0%2Fuploads%2Fgit-blob-87ab34ba71d2b1ed70492c8518f6cd6f646bd126%2F0d844e54e7f9c1d40ef574af959c625b4fbaef06-563x1218.png?alt=media)

* Support for creating and opening [file attachment annotations](https://sdk.apryse.com/api/ios/Classes/PTFileAttachment.html). The new [`PTFileAttachmentCreate`](https://sdk.apryse.com/api/ios/Classes/PTFileAttachmentCreate.html) tool handles the creation of file attachments and the `PTToolManager` exposes a [flexible API](https://sdk.apryse.com/api/ios/Protocols/PTToolManagerDelegate.html#/c:objc\(pl\)PTToolManagerDelegate\(im\)toolManager:handleFileAttachment:onPageNumber:) to handle existing file attachments in documents.The [`PTDocumentViewController`](/ios/basic-operations/open/doc-view.md) and [`PTTabbedDocumentViewController`](/ios/basic-operations/open/doc-tabbed.md) are capable of opening file attachments. You can also add your own custom file attachment code with the help of the [dedicated ](https://sdk.apryse.com/api/ios/Protocols/PTToolManagerDelegate.html#/c:objc\(pl\)PTToolManagerDelegate\(im\)toolManager:handleFileAttachment:onPageNumber:)[`PTToolManagerDelegate`](https://sdk.apryse.com/api/ios/Protocols/PTToolManagerDelegate.html#/c:objc\(pl\)PTToolManagerDelegate\(im\)toolManager:handleFileAttachment:onPageNumber:)[ method](https://sdk.apryse.com/api/ios/Protocols/PTToolManagerDelegate.html#/c:objc\(pl\)PTToolManagerDelegate\(im\)toolManager:handleFileAttachment:onPageNumber:) and the [`PTFileAttachmentHandler`](https://sdk.apryse.com/api/ios/Classes/PTFileAttachmentHandler.html) class, which handles exporting the file attachment to a file:

{% tabs %}
{% tab title="Swift" %}
{% code lineNumbers="true" %}

```swift
func toolManager(_ toolManager: PTToolManager, handle fileAttachment: PTFileAttachment, onPageNumber pageNumber: UInt) {
    let handler = PTFileAttachmentHandler()
    handler.delegate = self

    handler.export(fileAttachment, from: self.doc)
}

func fileAttachmentHandler(_ fileAttachmentHandler: PTFileAttachmentHandler, didExport fileAttachment: PTFileAttachment, from doc: PTPDFDoc, to exportedURL: URL) {
    // Handle exported file attachment.
}
```

{% endcode %}
{% endtab %}

{% tab title="Obj-C" %}
{% code lineNumbers="true" %}

```objc
- (void)toolManager:(PTToolManager *)toolManager handleFileAttachment:(PTFileAttachment *)fileAttachment onPageNumber:(unsigned long)pageNumber
{
	PTFileAttachmentHandler *handler = [[PTFileAttachmentHandler alloc] init];
	handler.delegate = self;

    [handler exportFileAttachment:fileAttachment fromPDFDoc:self.doc];
}

- (void)fileAttachmentHandler:(PTFileAttachmentHandler *)fileAttachmentHandler didExportFileAttachment:(PTFileAttachment *)fileAttachment fromPDFDoc:(PTPDFDoc *)doc toURL:(NSURL *)exportedURL
{
	// Handle exported file attachment.
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

## Bug fixes

* A number of miscellaneous bug fixes.

## API diff

* The deprecated `PTAnnotationPermission` properties on the [`PTToolManager`](https://sdk.apryse.com/api/ios/Classes/PTToolManager.html) class have been removed. Please use the \[`PTAnnotationOptions`]\(<https://sdk.apryse.com/api/ios/Classes/PTToolManager.html#/Annotation> options)\[ properties]\(<https://sdk.apryse.com/api/ios/Classes/PTToolManager.html#/Annotation> options) to control annotation options.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.apryse.com/ios/changelogs/version-6/v6-10-1-70232.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
