问题标签 [nsdocumentcontroller]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3108 浏览

cocoa - Cocoa NSDocument:让自动保存工作

文档只是说明setAutosavingDelay在共享文档控制器上设置为任何 > 0 都应该这样做,但是在调用之后

在我的控制器中,自动保存似乎不起作用:我既没有看到任何东西~/Library/Autosave Information/,也没有看到

初始化。

请注意,在我的应用程序中,正常加载和保存工作正常(keyedarchivers、我的文档的基于 nscoding 的类等)。

0 投票
2 回答
2557 浏览

cocoa - 基于文档的应用程序不会恢复具有非文件 URL 的文档

我有一个基于 NSDocument 和 NSDocumentController 子类的应用程序。我的 NSDocument 与文件 URL 和具有使用 Web 服务的自定义方案的 URL 一起使用。

我使用自定义代码处理大部分加载和保存,包括-saveToURL:ofType:forSaveOperation:completionHandler:. +autosavesInPlace返回YES

我遇到的问题:具有自定义 URL 方案的文档在启动时未恢复。具有文件 URL 方案的文档是 - 保存到文件的常规文档和自动保存的无标题文档。

离开打开的基于服务器的文档并退出应用程序后,重新启动时似乎没有调用任何 NSDocument 方法。特别是,四个初始化器都没有被调用:

  • -在里面
  • --initWithContentsOfURL:ofType:错误:
  • –initForURL:withContentsOfURL:ofType:error:
  • --initWithType:错误:

NSDocumentController 方法-reopenDocumentForURL:withContentsOfURL:display:completionHandler:也没有被调用。

如何以及何时对文档的可恢复状态进行编码?它们是如何以及何时解码的?

0 投票
2 回答
1401 浏览

objective-c - 如何将 NSDocumentController 子类化为一次只允许一个文档

我正在尝试创建一个基于核心数据的基于文档的应用程序,但限制是一次只能查看一个文档(它是一个音频应用程序,对于很多文档一次发出噪音是没有意义的) .

我的计划是以一种不需要将其链接到任何菜单操作的方式对 NSDocumentController 进行子类化。这一直在合理地进行,但我遇到了一个问题,这让我对我的方法有点怀疑。

以下代码在大多数情况下都有效,除非用户执行以下操作: - 尝试打开现有“脏”文档的文档 - 在保存/不保存/取消警报上单击取消(这工作正常) - 然后尝试再次打开文档。由于某种原因,现在 openDocumentWithContentsOfURL 方法再也不会被调用,即使打开的对话框出现了。

谁能帮我弄清楚为什么?或者也许给我举个例子来说明如何正确地做到这一点?感觉就像一些人必须实现的东西,但我找不到 10.7+ 的例子。

0 投票
1 回答
176 浏览

macos - 获取支持的文档类型

您如何以编程方式获取 Cocoa 应用程序中所有支持的文档类型的列表?

我希望在其中找到它,NSDocumentController但最接近的似乎是子类documentClassNames列表NSDocument

0 投票
1 回答
615 浏览

xcode - 在启动时通过文件拖放调试 NSDocument 应用程序?

假设我有一个 NSDocument 应用程序,它支持将文件拖放到其图标上以启动应用程序并打开该文件。我的 NSApplicationDelegate 已经实现

这是通过文件拖放调用的。我希望能够在内部中断并开始调试,application:openFile:但必须从 Xcode 启动应用程序才能使用拖放启动。

什么是这样做的好方法?

0 投票
1 回答
272 浏览

ios - 保存前在 iOS 中预览 PDF 文档

我正在构建一个将生成 PDF 的应用程序。我可以很好地生成 PDF,但它是构建和保存 PDF 的一键式操作。我想做的是将其更改为显示 PDF 的预览,然后提供编辑内容或将其保存到 Documents 文件夹的选项。我该怎么做呢?这是我所拥有的保存它的东西。

0 投票
1 回答
942 浏览

macos - 如何防止基于文档的可可应用程序打开任何文档?

最近,每当我启动我的应用程序时,保存的文档都会导致崩溃。有没有办法阻止基于文档的应用程序打开任何文档,包括新的空文档或最后一个活动文档?我不想通过使用 OSX 功能(在我的应用程序范围之外)来做到这一点,而是在我的程序中。

我认为这应该通过NSDocumentController某种方式来完成,但我无法弄清楚并且没有运气在其他地方找到答案。

那么,如何告诉 OSX 应用程序(通过NSDocumentController)在启动时不要打开任何文档?

0 投票
2 回答
877 浏览

macos - 如何使用 NSDocumentController 创建 NSDocument 的新实例?

我试过了

但它不工作。我有错误

0 投票
1 回答
648 浏览

objective-c - 我什么时候应该为 OSX 应用子类化 NSDocumentController?

我正在构建一个document-based具有核心数据支持的应用程序(所以我的文档是NSPersistentDocument),我想知道我是否需要子类NSDocumentController以及NSWindowController(对于我的应用程序中的每个窗口,因为我有多个)。

我查看了苹果文档,但没有找到一个很好的解释,NSDocumentController只是它说“你不太可能需要对它进行子类化”。

有人可以给我一些关于这一切如何运作的提示和场景吗?

任何形式的帮助都非常感谢!

0 投票
1 回答
92 浏览

nsdocument - 基于文档的应用程序中的 IBOutlet

我已经创建了一个基于应用程序文档,但是我在处理 IBOutlet 时遇到了问题,因为当我在第一个窗口的文档中选择了某个控制器时,有时另一个窗口文档中的另一个相同的控制器也被选中了......也许我做错了强/弱/读写或我不太确定的东西,所以我决定强制我的应用程序只有一个窗口文档。现在我的问题。我有一个arrayController,当我启动我的应用程序并打开保存的文件时,它会关闭默认创建的“空白文档”并显示加载数据的新窗口文档。问题是在 windowControllerDidLoadNib 内部调用的第二个窗口的 arrayController 是正确的指针(由 makeWindowControllers 创建)但是当我在代码中使用它时,它有另一个指针,它是已关闭的空白文档的旧 arrayController!为什么?关闭方法会释放一切吗?(我使用ARC)。对不起,如果我的话有混淆,我是新手。谢谢你。这是我的代码: