> 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
