iOS Tab Advance and FormFillTool

We are currently working on implementing tab advance for some custom PDFs we use in our iOS application. The requirement is only to be supported with an attached hardware keyboard, so no need for an input accessory view.

I've been mucking about with the provided FormFillTool to get the desired functionality, but haven't been making much progress. I can get the current UITextField, detect the hardware tab key press, find the next field, and fire a custom event back to the parent PDFViewCtrl instance. After that things get murky.

There are undocumented API calls to simulate a touch event, but that route would most likely lead to rejection of the app for Apple App Store deployments. The sample code is excellent in regards to iterating through the fields in a batch fashion. I just don't see a clear path to be able to advance to the next available text field.

Any thoughts, ideas, or alternative approaches would be greatly appreciated.

Hi Steve,

All of the annotation handling, including form fields, is implemented in the tools library, libTools.a. If you are a customer you will have received a copy of the tools source code. When you detect the hardware tab key press, you will need to take the same action as when someone taps on a new form field, except the new annotation isn’t specified by calling GetAnnotationAt:y:, but rather by programmatically iterating through the fields (as you are doing). If you look at the file FormFillTool.m, the selector -(BOOL)fillForm: could be modified to take field annotation directly rather than finding it via a set of coordinates.


Hello Steve. Were you able to get the tab advance to work per James’s recommendation?