gpt4 book ai didi

objective-c - Cocoa 中的多行 PDFAnnotationTextWidget

转载 作者:行者123 更新时间:2023-12-03 17:11:44 24 4
gpt4 key购买 nike

我正在尝试在 pdfkit 中创建一个多行的可编辑 pdf 注释。用户不需要能够创建新行,但我希望文本显示在整个边界框上(即在几行上)。

但是,在编辑模式下,它似乎使用标准的单行 NSTextField。如果我只能访问该对象,我可以将其更改为多行,但 PDFAnnotationTextWidget 似乎没有公开该对象。

https://developer.apple.com/library/mac/documentation/graphicsimaging/Reference/QuartzFramework/Classes/PDFAnnotationTextWidget_Class/Reference/Reference.html

有什么想法吗?

我找到的唯一示例是 2006 年的 PDFKit 示例项目,但它也只支持单行注释。

https://developer.apple.com/library/mac/samplecode/PDFAnnotationEditor/Introduction/Intro.html

如果不可能,是否有办法创建自定义 PDFKit 注释?在这种情况下,如何创建?

最佳答案

似乎没有公共(public)方法来访问该 NSTextField。
您只能通过一些方法来访问它,就像我在 this example 中所做的那样(请注意:代码有很多警告,因为它很旧)

在我的示例中,您可以在 NSTextField 中写入多行,但是当您退出编辑模式时,所有内容都会在一行上:Apple 使用单行文本字段进行 Widget 注释是有原因的,据我所知,PDF 中的 Widget 注释支持只有单行,但这是 PDF 注释的限制,而不是 Apple SDK 中的限制。

如果您在添加注释后保存文档,您可以从任何其他 pdf 编辑器访问它...在这种情况下,您将只看到一行(这不是 NSTextField 而是 pdf 自己的实现)读者)。

如果您想允许用户在多行上书写文本,并在 PDF 上可视化它(但其他 pdf 阅读器不可能更改您的注释),您必须子类化 PDFAnnotation 并创建您自己的类。
在本例中,请查看 MyStampAnnotation 文件。您可以创建一个类似的类,继承自 PDFAnnotation。当用户单击注释(在编辑模式下)时,添加您自己的文本字段,然后使用 drawWithBox: 方法中的 CGContextShowTextAtPoint 之类的内容直接在文档上写入文本

关于objective-c - Cocoa 中的多行 PDFAnnotationTextWidget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22605647/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com