objective-c – NSDocument来保存一个完整的文件夹?

objective-c – NSDocument来保存一个完整的文件夹?,第1张

概述我很抱歉这个论点是否已被涵盖,但经过一些研究后我发现并不准确. 我需要创建一个基于文档的应用程序,其中文档实际上不是单个文件,而是目录中的文件的结构化集合.窗口将显示包含在文件夹中的pdf,具有特定的文件名,并使用文件夹中其他文件的信息进行丰富. 我无法使用pdf注释来实现这一点,我真的需要将文件与pdf分开. 实现这一目标的最佳方法是什么?我找到的所有示例代码都使用单个文件.. 您可以将NSFi 我很抱歉这个论点是否已被涵盖,但经过一些研究后我发现并不准确.

我需要创建一个基于文档的应用程序,其中文档实际上不是单个文件,而是目录中的文件的结构化集合.窗口将显示包含在文件夹中的pdf,具有特定的文件名,并使用文件夹中其他文件的信息进行丰富.
我无法使用pdf注释来实现这一点,我真的需要将文件与pdf分开.

实现这一目标的最佳方法是什么?我找到的所有示例代码都使用单个文件..

解决方法 您可以将NSfileWrapper用作基于文档的应用程序中的包目录.

在应用程序Info.pList文件中,声明您的文档类型是包或包(键值为LSTypeIsPackage,值为YES).

在NSdocument子类中,实现以下读写方法.在这个例子中,我假设相应的模型实例变量是pdfData和signatureBitmapData,它们分别存储在Maindocument.pdf和SignatureBitmap.png下的包目录中.

- (BOol)readFromfileWrapper:(NSfileWrapper *)dirWrapper                     ofType:(Nsstring *)typename                      error:(NSError **)outError{    NSfileWrapper *wrapper;    NSData *data;    wrapper = [[dirWrapper fileWrappers] objectForKey:@"Maindocument.pdf"];    data = [wrapper regularfileContents];    self.pdfData = data;    wrapper = [[dirWrapper fileWrappers] objectForKey:@"SignatureBitmap.png"];    data = [wrapper regularfileContents];    self.signatureBitmapData = data;    …    return YES;}- (NSfileWrapper *)fileWrapperOfType:(Nsstring *)typename                               error:(NSError **)outError{    NSfileWrapper *dirWrapper = [[[NSfileWrapper alloc]        initDirectoryWithfileWrappers:nil] autorelease];    [dirWrapper addRegularfileWithContents:self.pdfData        preferredfilename:@"Maindocument.pdf"];    [dirWrapper addRegularfileWithContents:self.signatureBitmapData        preferredfilename:@"SignatureBitmap.png"];    …    return dirWrapper;}

从用户的角度来看,包目录在Finder中显示为好像是单个文件,就像Xcode .xcodeproj目录或应用程序包一样.

总结

以上是内存溢出为你收集整理的objective-c – NSDocument来保存一个完整的文件夹?全部内容,希望文章能够帮你解决objective-c – NSDocument来保存一个完整的文件夹?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1024375.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存