问题标签 [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 投票
1 回答
418 浏览

objective-c - macOS 基于文档的应用程序如何启动?

我正在学习 macOS 应用程序开发的基于文档的应用程序架构,但对此感到困惑。

我在 Xcode 中创建了一个基于文档的应用程序。应用程序模板创建了一个简单的基于文档的应用程序。它可以运行,并且在运行时会自动创建一个新文档。

我的问题是:这个应用程序如何启动文档架构?我想应该有一些如下代码:

但是我在创建的应用程序中找不到任何这样的代码。应用程序委托中的 - (void)applicationDidFinishLaunching: 方法为空。此外,主 nib 文件中没有任何 NSDocumentController 对象。

那么,这个应用程序如何知道它应该使用文档架构,初始化一个 NSDocumentController,然后创建一个新文档呢?

0 投票
0 回答
61 浏览

swift - 使用单个窗口的基于文档的应用程序

我有一个基于文档的 macOS 应用程序,它是一个基本的文本编辑器。默认行为是为每个打开的文档创建一个新窗口。但是我希望一次只显示一个窗口,并且在打开文档或创建新窗口时,这应该发生在同一个窗口中,从而替换旧文档。

我试图通过不实例化新的窗口控制器而是重用旧的窗口控制器来对该makeWindowControllers方法进行一些黑客攻击。NSDocument但是在这种方法出现一些问题之后,我认为这不是正确的方法。我想知道是否有解决此问题的通用方法。

这是我尝试过的代码

0 投票
1 回答
43 浏览

objective-c - 从 NSObject 获取 NSDocument

我在 macOS,objective-c,而不是 iOS。我目前正在重写我的应用程序以基于文档。我现在将每个 NSDocument 文件中的所需数据保存为属性,该属性非常有用,包括自动保存。

我可以通过 NSViewControllers 访问该数据

我也可以通过

但正如文档对上述方法所说的那样

如果在应用不活动时调用此属性,则该属性的值为 nil。

我的问题是我在文档中有(大量)自定义 NSObject 来处理内容并需要访问该数据。这也发生在后台(使用计时器)。如果应用程序在后台并且没有可用的窗口,那么从 NSObject 访问文档的最佳方式是什么?

我需要在创建时将文档传递给每个对象吗?这感觉不正确。

0 投票
1 回答
16 浏览

document - 非文件的文档控制器搜索处理:URL

具有自定义 URL 方案的全局文档?

我需要通过 URL 缓存信息,使用自定义方案 - 非文件:;允许用户访问,否则将此类 URL 视为通过其 URLglobal进行的任何访问都会看到相同的数据。这只是访问用户默认值的一种奇特方式。

如果文档退出 - 以前打开过,我依靠文档控制器document(url:)找到这样的 URL。

然而它没有?

在应用程序完成启动时考虑这一点:

断言触发!

所以我停下来试着弄清楚我做错了什么。

本质上,我试图在一个平面命名空间中支持非文件:信息,以提供一致的访问和内容。