Text search

There are two parts to text searching. First is the UI component that is presented to the user. Second is an API guide to perform the text search functionality.

Add text search to iOS viewer

The PTTextSearchViewController class allows the user to enter and search text in a document. Search results are automatically highlighted in the document and a toolbar with navigation buttons allows searching forward or backward through the document. The core text search functionality is provided by the PTPDFViewCtrl's text search methods.

Apryse Docs Image

The search view controller is part of the Tools library, so make sure you have added the Tools library to your project.

Showing a text search view controller

To create and set up a text search view controller, supply a PTPDFViewCtrl instance to the PTTextSearchViewController designated initializer:

1let textSearchViewController = PTTextSearchViewController(pdfViewCtrl: pdfViewCtrl)
2textSearchViewController.delegate = self
3
4let navigationController = UINavigationController(rootViewController: textSearchViewController)
5navigationController.modalPresentationStyle = .custom
6
7self.present(navigationController, animated: true, completion: nil)

The search view controller does not create its own top navigation bar, so it must be pushed onto a navigation controller's stack.

Search results list view

The PTTextSearchViewController also presents the search results in a UITableView for fast and easy navigation. Selecting any result in the table view will immediately navigate to that result and highlight it.

Apryse Docs Image

Search options

The PTTextSearchViewController interface also allows the user to refine the search to be case-sensitive, or to match whole words only:

Apryse Docs Image

The text search view controller delegate

The PTTextSearchViewControllerDelegate protocol allows the adopting class (usually the containing view controller, as in this guide) to be notified when the view controller has been dismissed. This can be used to show or hide other content as appropriate.

Did you find this helpful?

Trial setup questions?

Ask experts on Discord

Need other help?

Contact Support

Pricing or product questions?

Contact Sales