问题标签 [nsdocument]
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.
cocoa - Cocoa NSDocument:让自动保存工作
文档只是说明setAutosavingDelay
在共享文档控制器上设置为任何 > 0 都应该这样做,但是在调用之后
在我的控制器中,自动保存似乎不起作用:我既没有看到任何东西~/Library/Autosave Information/
,也没有看到
初始化。
请注意,在我的应用程序中,正常加载和保存工作正常(keyedarchivers、我的文档的基于 nscoding 的类等)。
cocoa - 您将 NSDocument 子类的清理代码放在哪里?
我有一个基于文档的应用程序,我已经分类NSDocument
并提供了所需的方法,但是我的文档需要进行一些广泛的清理(需要运行外部任务等)。把这个放在哪里最好?我尝试了几种不同的方法,例如:
close
close:
canCloseDocumentWithDelegate:shouldCloseSelector:contextInfo
dealloc
如果我把它放进去dealloc
,有时它会被调用,而有时它不会(按 Command+Q 似乎绕过了我的文档的释放),但是必须在没有失败的情况下调用此代码(除非程序意外终止)。
objective-c - 为 NSDocument 启用保存
当我创建我的 NSDocuments 时,我正在使用 NSDocumentController 子类来做一些自定义的东西。奇怪的是,当创建文档时,菜单中的保存选项被禁用。问题是我使用保存功能从文档中手动保存一些内容,因此它与主要的 NSDocument 保存过程分离。通常我在文档中进行更改时使用 [self updateChangeCount: NSChangeDone] ,但这似乎对创建文档时启用“保存”菜单项没有任何影响。
我在第一次创建 [NSDocument saveToURL] 时使用它,所以这可能是后来禁用保存的原因。有没有办法让我强制它再次可以保存?
cocoa - Cocoa 单个窗口中的多个文档
我想通过选项卡式界面编写一个可能在单个窗口中有多个文档的应用程序。我应该避免使用 NSDocument 架构(基于 Cocoa 文档的应用程序模板)吗?据我所知,它只支持每个文档一个或多个窗口,反之亦然。
我一直在努力解决这个问题,并且已经在 NSDocument 架构上构建了我的大部分应用程序,但我无法找到将多个文档与单个窗口相关联的好方法。
编辑:除了基本文档窗口之外,我还想拥有项目文档窗口。在这种复杂程度下,仍然值得破解 NSDocument 架构吗?Apple 是否使用 NSDocument 架构编写了 Xcode(以这种方式工作)?
objective-c - 在 NSDocument 架构中打开文档之前进行验证
我有一个基于文档的应用程序,它可以格式化 XML 文件。
文档的编写和阅读在我的 NSDocument 子类中完成
但如果文件是无效的 XML,我的应用程序就会崩溃。
所以我实现了:
但这有很多明显的副作用。我必须覆盖其他几个方法:
这就是沙滩球光标出现的地方,最终应用程序变得无响应。
有没有更好的方法在打开之前验证文档?
objective-c - NSDocument 架构的优缺点
有人想分享任何 NSDocument 的优点和缺点吗?
尤其:
一旦你依赖于 NSDocument 架构,如果你需要重构它是不是很困难?
有性能影响吗?
它是否在某些/许多方面限制了你?
objective-c - NSDocument and keyboard (like keyDown)
I've tried to read on apple documentation but I can't find anywhere how to capture key event (space or other) into an NSDocument application.
With initialFirstRepsodner if I've understand well it's not possible to do.
Any idea?
thanks to all! Andrea
cocoa - NSDocument 和 writeToURL:ofType:error 的问题:
我正在开发基于文档的应用程序,我想使用文档包作为我的文件格式。为此,我需要重写的 NSDocument 方法似乎是
-writeToURL:ofType:error:
.
它有时有效,但仅在某些条件下有效。例如,此代码有效:
但是,这段代码没有(它和上面的一样,但是去掉了 NSFileWrapper 位):
上面的代码将这个神秘的错误放入控制台(“Lithograph”是我的应用程序的名称,“.site”是包扩展名):
在我可以将其他文件添加到包之前,我是否必须在原始 URL 中写入一些内容?
objective-c - 如何将操作与键盘快捷键相关联?
我有一个调用面板的 IBAction。我想使用键盘快捷键调用该操作,但我不知道该怎么做。
我想这样做的一种方法是创建一个菜单项,将操作与该项目相关联,然后将快捷方式分配给该项目,但我还没有完成我的菜单。
有什么想法或建议吗?
cocoa - 如何为具有“查看者”角色的应用程序定义可写类型?
我有一个具有PDF 文件查看者角色的应用程序。尽管我的应用程序不编辑 PDF 文件,但它确实允许用户保存 PDF 文件(如果它对于我的应用程序处理的工作流程来说太大或太复杂)。
调用该SaveDocumentAs:
方法时,我收到以下警告:
试图保存未定义任何适当可写类型的文档。
我可以通过将应用程序的角色更改为Editor来避免此警告,但不想让我的应用程序成为编辑器,因为应用程序在启动时会尝试创建空白 PDF 文档。
在不将我的应用程序声明为 PDF 文件编辑器的情况下,如何避免此警告?