用户可以正常选择文本,然后从UIMENU中选择“高亮显示”或“删除高亮显示”。
为了在选择文本时自定义pdfView,我已经更改了出现的菜单-首先通过删除默认操作:
extension PDFView {
override public func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
return false
}
}
然后在viewDidLoad()中设置了自定义UIMenuItems:
let menuItem1 = UIMenuItem(title: "Highlight", action: #selector(highlightSelection(_:)))
let menuItem2 = UIMenuItem(title: "Remove highlight", action: #selector(removeHighlightSelection(_:)))
UIMenuController.shared.menuItems = [menuItem1, menuItem2]
@objc func highlightSelection(_ sender: UIMenuItem) {
let selections = pdfViewer.currentSelection?.selectionsByLine()
guard let page = selections?.first?.pages.first else { return }
selections?.forEach({ selection in
let highlight = PDFAnnotation(bounds: selection.bounds(for: page), forType: .highlight, withProperties: nil)
highlight.color = .yellow
page.addAnnotation(highlight)
})
}
当我选择突出显示的文本时,我希望用户能够通过点击“删除突出显示”来删除突出显示注释,但我根本无法想出如何仅仅删除隐藏在所选文本“后面”的注释。
这段代码正在工作,但删除了整个页面上的所有注释:
@objc func removeHighlightSelection(_ sender: UIMenuItem) {
let selections = pdfViewer.currentSelection?.selectionsByLine()
guard let page = selections?.first?.pages.first else { return }
let annotationsToRemove = page.annotations
for annotation in annotationsToRemove {
page.removeAnnotation(annotation)
print("Removed: \(annotation)")
}
}
那么,我如何只删除选定的高亮注释呢?
请注意以下通知:PDFViewAnnotationHitNotification:https://developer.apple.com/documentation/foundation/nsnotification/name/1504809-PDFViewanNotationHit
向通知侦听器添加目标
当按下注释时,从“pdfanNotationHit”的PDFViewAnnotationHitNotification的userInfo返回字典值,您将得到所按下的确切注释,一旦有了这个注释,就删除它。
问题内容: 我在iOS上使用PDFKit突出显示文本(PDF文件)。我通过创建PDFAnnotation并将其添加到选定的文本区域来实现。我想精确地突出显示所选区域,但它始终覆盖整行,如下图所示。如何仅为选定区域创建注释? 我的代码: 问题答案: 方法返回一个矩形以满足整个选择区域。不是您情况下的最佳解决方案。 尝试使用,并为每个矩形添加单独的注释,以表示PDF中的每个选定行。例:
现在我想知道如何使用ITextSharp移除那些高亮显示的矩形。 它删除了所有的注释,但我想删除特定的注释。假设我在第1页突出了美国和专利申请出版物,现在我想单独删除美国。我会通过美国的文本。 我引用了这个答案。其中,要获得突出显示的文本,需要获得存储在突出显示注释中的坐标(存储在QuadPoints数组中),并且需要使用这些坐标解析页面内容中位于这些坐标处的文本。
我在Word文档中突出显示了段落,我必须从每个段落的第3到第5个字符中删除突出显示。 通过搜索集合r=ActiveDocument中突出显示的范围。在VBA中,可以完美地找到文本段。 错误出现在。 编译错误:参数数量错误或无效的属性分配。 danI如何在范围内正确指定第3到第5个字符的子范围?谢谢你的帮助。
有没有办法从一个巨大的xml文件中删除注释( 两者,根元素前的注释 和内的注释 最好的解决方案是使用xPath。我试过了 它适用于DOM,但不适用于vtd xml 这是我选择评论的代码 但此处的屏幕上打印的是nothing。 有没有办法用vtd xml做到这一点? 谢谢你的帮助。
applyChange()方法总是返回“unsuccessful”,我找不到任何关于注释删除不起作用的文档。 注:在http://sourceforge.net/p/owlapi/mailman/message/28203984/here似乎起作用
问题内容: IntelliJ中是否有插件或工具可以将所有注释从源.java文件中删除?我已经阅读了有关可以执行此操作的[ANT任务的信息。希望在IDE中执行相同的操作。另外,也可以使用TextPad插件。 问题答案: 您可以在正则表达式模式下使用“替换”(如果要删除多个文件中的注释,则可以使用“在路径中替换”),然后在“查找文本”字段中使用此正则表达式: 并将其替换为空字符串。然后按“全部”,以将