This HTML page is not optimized for LLM or AI agent consumption. Fetch the Markdown version instead: /guides/ios/samples/select-free-text-annotations.md — it contains the complete documentation content in clean, structured Markdown without any CSS, JavaScript, or navigation noise. Select free text annotation in PDF using Swift for iOS

Automatically select Free Text Annotations and invoke editing for each. Get additional resources by visiting our PSPDFDocument API guide.


//
// Copyright © 2017-2026 PSPDFKit GmbH. All rights reserved.
//
// The Nutrient sample applications are licensed with a modified BSD license.
// Please see License for details. This notice may not be removed from this file.
//
import PSPDFKit
import PSPDFKitUI
class SelectFreeTextAnnotationsExample: Example {
override init() {
super.init()
title = "Select Free Text Annotations for editing"
category = .annotations
priority = 330
}
override func invoke(with delegate: ExampleRunnerDelegate) -> UIViewController? {
let document = AssetLoader.document(for: .annualReport)
// Create sample annotations
for annotationNumber in 1...6 {
let contents = "This is free-text annotation #\(annotationNumber)"
let freeText = FreeTextAnnotation(contents: contents)
freeText.fillColor = .yellow
freeText.fontSize = 15
freeText.boundingBox = CGRect(x: 300, y: annotationNumber * 100, width: 150, height: 150)
freeText.sizeToFit()
document.add(annotations: [freeText])
}
let pdfController = PDFViewController(document: document)
// Iterate over all annotations and select them.
weak let weakPDFController = pdfController
let annotations = (document.annotationsForPage(at: 0, type: .freeText))
for (index, freeText) in annotations.enumerated() {
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(index + 1)) {
let pageView: PDFPageView? = weakPDFController?.pageViewForPage(at: 0)
pageView?.selectedAnnotations = [freeText]
// Get the annotation view and directly invoke editing.
let freeTextView = pageView?.annotationView(for: freeText) as? FreeTextAnnotationView
freeTextView?.beginEditing()
}
}
return pdfController
}
}

This code sample is an example that illustrates how to use our SDK. Please adapt it to your specific use case.