问题标签 [document-based]

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 回答
1173 浏览

ios - Document-Based Application

Xcode 9 / iOS 11: My app creates pdf-files which are rendered with data from a core data-database. The pdf's are created from a WebView and are stored in the documents directory. Everything works so far. I can open the pdf-files in Apple's Files App and even edit them there. I would like to implement the DocumentBrowserViewController in my app. I used the template from Xcode 9. I'm not able to show the created pdf-files in the DocumentViewController like in Apple's Files App. I can pick the documents but the DocumentViewController shows only the file name and a done-button. Which is the easiest way to show existing pdf's in this DocumentViewController from the template? Where do I have to implement the relevant code?

Code from Xcode9-template:

class DocumentViewController: UIViewController {

and here's the subclass of UIDocument from the Xcode 9-template:

class Document: UIDocument {

}

I'm not very experienced in app-development. I was watching Paul Hagerty's course cs193p on iTunesU about persistence with UIDocument. But he's saving the model of the app and I have a pdf. Is there an easy way to do show the pdf's? I tried different ways to load the pdf but I'm not sure if I have to create a UIView first. The nice feature in Files App is that you can edit or send the pdf via email.

0 投票
1 回答
1004 浏览

ios - 在基于 UIDocumentBrowserViewController 的应用程序中打开多个文档

Apple 的文档很少涉及UIDocumentBrowserViewController基于应用程序的主题,这些应用程序希望支持同时打开多个文档。

我想启用此功能,以便用户可以轻松地在两个或多个文档之间复制/粘贴,而无需退出回文档浏览器,这在 iOS 上不是流畅的体验。

除了对该allowsPickingMultipleItems物业的简短描述外,我找不到任何东西。

对于单个文档视图,Apple 建议使用模态视图,但没有说其他任何内容。

问题

  1. 实现多个打开文档的体验和 UI 的推荐方法是什么(如果有)?
  2. 有没有办法让用户打开一组文档,然后在保持现有文档打开的同时打开另一个文档?
  3. 有没有实现这种体验的应用程序?
0 投票
1 回答
179 浏览

objective-c - 从 NSWindowController 子类访问 NSDocument?

我正在创建简单的基于文档的应用程序。到目前为止,我已经实现了 NSDocument 子类Document和 NSWindowController 子类,即ToolbarWindowController. ToolbarWindowController 控制工具栏,它有滑块来修改用户打开的图像。

我现在遇到的问题是在打开的图像上应用过滤器(修改图像):我无法弄清楚如何将打开的图像用作ToolbarWindowController.

Fe 当我在其中打开图像时,Document我可以将其设置为ViewControllerimageView,在makeWindowControllers

我可以以某种方式访问​​我的ToolbarWindowController属性/变量并在那里创建一个NSImage属性来修改打开的图像吗?或者我可以访问Document属性来实现同样的事情吗?它甚至可以这样工作吗?

0 投票
1 回答
128 浏览

macos - 当 Application 退出时,NSDocument 的 isDocumentEdited 方法总是返回 false

在基于文档的应用程序中,文档中的任何更改都由

在任何时候,在调试时,[document isEdited]只要文档已经被编辑,就返回 TRUE。文档的窗口在文档名称旁边显示“已修改”。当我退出应用程序时,我的应用程序代表会使用以下循环检查所有打开的文档,并检查它们是否已被编辑:

似乎对于任何文档——无论是否修改—— [document isDocumentEdited];总是返回 FALSE!这样就无法调用审核更改/保存过程。如果我检查[window isDocumentEdited],它也会返回 FALSE,尽管窗口的标题栏中写有“Modified”。

当应用程序退出时,更改最终会被保存(自动),但不会通知用户。这是一个非常令人不安的行为!

知道什么可以解释isDocumentEdited布尔值在进入此过程之前在某处重置为 FALSE 吗?

我检查了所有代码,看看是否有任何[self updateChangeCount: NSChangeCleared]可以在某处运行的代码,但事实并非如此。我可以在我的 Document 子类中使用自定义 updateChange 计数系统来规避这个问题,但我宁愿使用内置过程。

在 Mojave 下使用 Xcode 10,目标为 10.12

0 投票
1 回答
22 浏览

nsarraycontroller - 在基于文档的可可应用程序中将 arrayControlle 绑定到 NSViewControllerr 导致 NSViewControllerr init(code :) 被调用多次

我正在开发一个使用 coredata 的基于文档的可可应用程序,我将 NSViewController 绑定到 NSArrayController,如下所示:

https://developer.apple.com/library/archive/qa/qa1871/_index.html

,当我在一个文档中保存一些NSManagedObject然后从保存的文档中读取数据时,模型可以从保存的文档中读取,但是NSViewController被创建了很多次,例如,如果我在文档中保存了7个NSManagedObject,然后我打开保存的文档,我可以得到保存的7个NSManagedObject,但是NSViewController会创建7次,我该怎么办?谢谢

0 投票
1 回答
758 浏览

mongodb - MongoDB 从多个模型/模式查询并在一个字段中返回

我正在使用Nodejs 和 MongoDB、mongoose 和 expressjs,创建一个包含用户、文章、喜欢和评论模式的博客 API 。以下是我使用的模式。

我真正需要的是当我* 收集文章 *我还想获得每篇文章的评论数。如何查询 mongo?

0 投票
1 回答
89 浏览

swift - NSWindow“已编辑”未显示

我有一个应用程序,主要用于提交文件,但在某些情况下也可以更改提交的文件。这就是为什么我的应用不是真正的基于文档的应用。

不过,当文档已被编辑且更改尚未保存时,我想在我的窗口标题中显示“-已编辑”附加项。

因此我必须在我的方法AppDelegate

我期待我的窗口标题在调用后从 更改MyWindow为,但这并没有发生。但是红色关闭按钮中的点会发生变化。我究竟做错了什么?MyWindow — Edited.setDocumentEdited(true)

0 投票
1 回答
343 浏览

swift - 如何将 SwiftUI 连接到 macOS 基于文档的应用程序中的文档?

我正在尝试创建一个基本的基于文​​档的 SwiftUI 应用程序。但是,Xcode 创建的骨架在文档和内容视图之间没有任何联系。这是我推断的正确方法:

(这是我的全部代码,除了 Xcode 生成的骨架)

但是,在生成的应用程序中,编辑似乎没有任何效果。该复选框不可选中,并且对文本字段的编辑将被还原。

如果不是上面的声明 A 和 B,那么声明文档内容的正确方法是什么,以及文档和内容视图之间的链接?

0 投票
0 回答
85 浏览

macos - 如何从 SwiftUI TextField 获取数据到 NSDokument 类

我想要做的是将一些来自 MacOS 应用程序的数据与 NSDocument 提供的类存储在一个文件中。我决定使用 SwiftUI ,但我发现的所有教程都使用 Storyboards。从那些我无法适应如何将我的文本字段中的数据获取到我的 NSDocument 类中。据我所知,我需要像这样在 NSDocument 类中初始化我的变量

在同一个类中,我可以使用保存这个字符串

所以在我使用 SwiftUI 生成的视图中,我可以使用

但是 - 因为我只使用一个实例,所以它总是保存“Foo” - 无论我在我的 TextField 中输入什么。

此外 - 另一个问题将立即跟进:从长远来看,我不想只存储一个字符串。我将拥有 3 个具有不同数据结构的不同二维数组。NSDocument 是否能够自行处理,还是我需要将它们转换为 JSON/XML/...-String 并将其存储为文件?

0 投票
0 回答
232 浏览

swift - 了解基于文档的应用程序中的核心数据

我正在创建一个基于文档的应用程序,第一次使用 swift / SwiftUI 和核心数据。我的 CRUDing 方法有效——但它似乎并不“正确”。也许有一种更优雅的方式来做到这一点。在我的文档类中,我得到了我的 NSManagedObjectContext。除此之外,我定义了另一个环境对象——一个保存我的实体的类

这两个 EnvironmentObjects 现在可以在整个应用程序中使用 - 首先是我的上下文,其次是我的 mainContent。

每当我想添加一个对象时,我都会调用一个函数并传入上下文和所有数据。这并没有刷新实际视图(除非我重新启动了应用程序),因此我需要返回一个更新的数组:

相应的函数看起来像这样:

这是解决这个问题的最好方法吗?还是有一些更简单的方法,不需要第二个 EnvironmentObject (所以我的 mainContent) - 这样就不会每次都将整个数据从我的函数中传回?这个解决方案也带来了撤消/重做不更新视图的缺点 - 所以也许我在这里做错了。

编辑

我发现 @FetchRequest 属性可以将数据加载到我的视图中,而无需将其存储在某处。不过,这还有另一个缺点:每当我打开第二个文档时,控制台都会输出一堆错误,例如

我找到了很多解决这个问题的方法——尽管它们都不起作用。我确保按照此处的建议正确注入了 MOC SwiftUI @FetchRequest 使应用程序崩溃并返回错误

我像这里建议的那样更改了实体模块Unable to find specific subclass of NSManagedObject

我在 Document-class 中为新文件创建了一个空数据集(在某处阅读 - 再也找不到链接了)

我做了一个只有几行代码的小例子,并在 gitHub 上分享:https ://github.com/Duras666/PersonListTest 即使这个基本的小应用程序也会遇到同样的错误,只要我打开第二个文档