我尝试使用新的iOS PDFKit框架在后台线程上运行搜索。
override func main() {
if isCancelled {
return
}
pdfDocument = PDFDocument.init(url: book.document.url)!
pdfDocument.delegate = self
pdfDocument.beginFindString("test", withOptions: [.caseInsensitive, .diacriticInsensitive]) (async)
//pdfDocument.findString("test", withOptions: [.caseInsensitive, .diacriticInsensitive]) (sync)
}
问题是没有任何PDFDocumentDelegate方法被调用,如果我使用TIME Profiler似乎没有发生任何事情。 同步选项有效,但无法取消。
有什么想法吗?
答案 0 :(得分:0)
委托方法适用于同步findString
。
如果是异步beginFindString
,您应该依赖通知:
// Objective - C
PDFDocumentDidBeginFindNotification
PDFDocumentDidEndFindNotification
PDFDocumentDidBeginPageFindNotification
PDFDocumentDidEndPageFindNotification
PDFDocumentDidFindMatchNotification
或
// Swift
Notification.Name.PDFDocumentDidBeginFind
Notification.Name.PDFDocumentDidEndFind
Notification.Name.PDFDocumentDidBeginPageFind
Notification.Name.PDFDocumentDidEndPageFind
Notification.Name.PDFDocumentDidFindMatch