如何获取选定文本的边界作为 CGRect?

How do I get the bounds of selected text as a CGRect?

我正在尝试在 pdfViewer 中包含突出显示功能。但是,为了添加高亮注释,我需要将所选文本的边界作为 CGRect。有什么办法可以得到吗?

let annotation = PDFAnnotation(bounds: bounds, forType: .highlight, withProperties: nil)

获取一个选择数组,其中每个选择对应所选文本的一行:

guard let selections = pdfView.currentSelection?.selectionsByLine()
     else { return }

逐行循环选择,然后循环每个选择包含的页面,然后使用选择的边界创建一个新的突出显示注释并将其添加到页面

selections.forEach({ selection in
     selection.pages.forEach({ page in
         let highlight = PDFAnnotation(bounds: selection.bounds(for: page), forType: .highlight, withProperties: nil)
         highlight.color = .yellow
         page.addAnnotation(highlight)
     })
 })