gpt4 book ai didi

macos - 我的 NSDocument 子类需要接受任何类型的文件

转载 作者:行者123 更新时间:2023-12-02 02:19:49 25 4
gpt4 key购买 nike

我正在构建一个查看器应用程序,它需要接受“任何”类型的文件作为要查看的选定文件。事实上它甚至应该接受文件夹,因为在那种情况下我想显示与文件夹相关的信息,例如文件数量等。现在假设我决定使用基于 NSDocument 的应用程序架构来执行此操作。如何让我的应用程序接受任何类型的文件(而不是获取这些 [NSDocumentController reopenDocumentForURL:withContentsOfURL:display:completionHandler:] 失败消息?

最佳答案

基于讨论: iOS Document/File type associations - wildcard UTI?我设法让它工作(看起来):

  1. 进入 Xcode(我使用的是 4.1)到“Project Navigator”并选择目标应用程序。
  2. 选择“信息”标签
  3. 转到列表中的“文档类型”元素。如果您使用默认的项目创建,它会填充您的自定义文档类型。
  4. 现在将 Name 属性更改为 public.item

现在应用程序将能够打开任何类型的文件作为其文档。要记住的一件事是保留以下(在项目创建期间自动生成)方法。我删除了它们,假设我不需要它们,这造成了另一个错误:

  1. - (NSData *)dataOfType:(NSString *)typeName 错误:(NSError **)outError
  2. - (BOOL)readFromData:(NSData *)data ofType:(NSString *)typeName 错误:(NSError **)outError

为了能够将文件夹作为您的文档,请添加:

  • - (BOOL)readFromFileWrapper:(NSFileWrapper *)fileWrapper ofType:(NSString *)typeName 错误:(NSError **)outError

目前看来还可以,欢迎补充。

关于macos - 我的 NSDocument 子类需要接受任何类型的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8861894/

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