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

macos - OS X:打开面板不显示 icloud 文档

我有一个应用程序,我想在其中打开面板,用户可以从本地存储或 icloud 中选择一个文档。我启用了 icloud 以及文件和数据,但打开的面板仅显示本地存储数据。我尝试了这些功能:

或者

或者

我是忘记了什么还是我做错了?非基于文档的应用程序是否有可能?

0 投票
0 回答
100 浏览

nsdocument - NSDocument 不在响应者链中

根据文档(参见图 1.10),NSDocument应该在响应者链中。

但是,如果我尝试通过该方法记录响应者链

这是我得到的:

2014-04-16 13:04:16.228 MyApp [5430:303] < NSWindow: 0x6080001e3200>

2014-04-16 13:04:16.228 MyApp [5430:303] < NSWindowController: 0x608000085dc0>

为什么会这样?我错过了什么吗?

我遇到这个问题的应用程序是一个最小的基于文档的应用程序:除了日志记录方法之外什么都没有。

0 投票
0 回答
433 浏览

cocoa - NSDocumentController 和应用程序委托之间的联系是什么?

我正在尝试了解基于 Cocoa 文档的应用程序的结构。我知道应用程序委托响应来自应用程序的事件(因此它的名字)并且文档控制器管理所有文档以及打开和保存等。我不明白的是文档控制器应用程序委托之间的连接,以及也许应用程序的其余部分。

我正在研究这张图片,在这里找到。

在此处输入图像描述

箭头似乎表明应用程序委托文档控制器之间存在某种联系。

他们有什么联系?

编辑:我意识到这是一个非常学术的问题,可能没有那么必要,但我想了解为什么这些事情是这样的。

0 投票
2 回答
130 浏览

macos - Apple 文档应用程序模板中的 NSDocumentController 在哪里

Apple 指出我很少需要继承 NSDocumentController。好的,但我希望在基于文档的应用程序模板生成的项目中的某个地方看到它。是不是在项目中,但苹果已经“有用”地隐藏了它?那里有什么我想念的吗?

谢谢

0 投票
2 回答
550 浏览

objective-c - 在基于 Cocoa 文档的应用程序启动中禁用打开面板

我编写了一个基于文档的应用程序,它在应用程序启动时禁用了新文档的自动创建,而不恢复以前打开的文档。

现在我还想禁用应用启动时出现的打开面板。

打开的面板有时会applicationWillFinishLaunching:applicationDidFinishLaunching:我的应用程序委托之间启动。

我可以弄清楚如何禁用此功能的唯一方法是[NSDocumentController openDocument:]在子类中覆盖,然后创建一个辅助“帮助器”方法,然后我将连接到“文件”>“打开”菜单。这似乎是一个非常 hacky 的解决方案,想看看是否有人有更好的想法。

0 投票
3 回答
684 浏览

cocoa - 创建后强制 NSDocument 保存

在其文档中,我的应用程序使用了大量与文档路径相关的资产。因此,必须先保存文档,然后才能添加资产。如何强制调用 [NSDocument saveDocumentAs] ?

我设法完成了其中的一部分:通过创建我自己的文档控制器,并在 openUntitledDocumentAndDisplay: 内部强制执行如下调用:

这会强制显示保存对话框,但不幸的是我无法检查用户是否按下了取消:saveDocumentAs 调用是异步的,并且会立即继续!

有没有办法来解决这个问题 ?

0 投票
1 回答
520 浏览

objective-c - 基于文档的应用程序的“新文档”停靠菜单项不会打开新文档

我的基于文档的应用程序有一个带有“新文档”项的停靠菜单。停靠菜单是在 Interface Builder 中制作的,其项目的操作连接到“First Responder”-newDocument:

文档控制器是被NSDocumentController调用的子类DocumentController

在应用程序委托中,此代码用于防止在启动时打开无标题文档(而不是显示文档控制器的打开面板):

如果我现在启动我的应用程序,它将显示打开的面板而不是无标题的文档。如果我然后单击停靠菜单的“新建文档”项,则不会打开新文档。如果我单击模板主菜单中的标准文件菜单选项“新建文档”,则会打开一个新文档。

我想不出为什么会这样,你可以吗?如何让停靠菜单打开新文档?


编辑:这是一个没有 NSDocumentController 子类但仍然存在相同问题的示例项目。

0 投票
0 回答
214 浏览

cocoa - 应用程序重新启动后,最近的文档列表被清除

我有一个非基于文档的应用程序,我想在其中使用“打开最近”菜单项来打开最近打开的项目。我已经使用application:openFile:noteNewRecentDocumentURL:描述here实现了这个。

AppDelegate.m (摘录)

SomeController.m (摘录)

这似乎最初可以部分工作,文档在调用后出现在菜单中,noteNewRecentDocumentURL:但在重新启动应用程序后,“打开最近”菜单为空。

我还需要做些什么才能使其正常工作吗?

0 投票
2 回答
307 浏览

ios - 如何以编程方式在 OS x 中的文件路径的帮助下打开文件夹或文件?

我已经使用 NSOpenPanel 选择了一个文件并保存了它的 url 路径,但是在我的 os x 应用程序中的任何时候我都想在默认的 mac 应用程序中打开这个文件。假设如果我选择一个文件并单击我的应用程序中的打开按钮文件应在默认预览中打开。我怎么能做到这一点?

0 投票
1 回答
222 浏览

objective-c - 调用 `[[NSDocumentController sharedDocumentController] recentDocumentURLs]` 挂起

我有一个应用程序会定期调用[[NSDocumentController sharedDocumentController] recentDocumentURLs]以重建最近打开的项目列表。这已经运行了一段时间了,但我最近收到报告说它挂起用户的系统:

11 -[NSDocumentController(NSPrivate) _recentDocumentURLsForKey:] + 271 (AppKit + 5903428) [0x7fff92ae5444] 1-11 11 -[__NSOperationInternal _waitUntilFinished:] + 131 (Foundation + 1060402) [0x7fff86a1ee32] 1-11 11 __psynch_cvwait + 10 (libsystem_kernel.dylib + 94046) [0x7fff8dec6f5e] 1-11 *11 psynch_cvcontinue + 0 (pthread + 30281) [0xffffff7f80e8d649] 1-11

对于报告错误的用户,这在升级到 El Capitan 后开始发生 - 他经常从网络共享加载文件,所以我猜系统正在阻止尝试定位文件的调用。环顾四周,这似乎是一个已经存在了一段时间的问题:http: //www.cocoabuilder.com/archive/cocoa/317137-thread-deadlock.htmlhttp://ticket.macromates.com/show? ticket_id=F3058D68

问题是,虽然几个应用程序报告该问题已修复,但我无法找到实际的修复程序。什么是解决这个问题的合适方法?将其卸载到后台线程是唯一合适的解决方案,还是我遗漏了什么?