问题标签 [documentgroup]

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

ios - 让用户在使用 SwiftUI 和 DocumentGroup 时选择要创建的文档类型

我的基于文档的应用程序支持几种不同的文件类型。它目前是用 SwiftUI 编写的,使用UIDocumentBrowserViewController. 我正在尝试转换为DocumentGroup您不直接使用 UIDocumentBrowserViewController 的新 SwiftUI (v2) 范例。我需要让用户在点击浏览器中的“创建”按钮时选择要创建的文档类型。使用 DocumentGroup,我看不出这是怎么可能的。创建 DocumentGroup 时,必须在此处指定文档:

使用 UIKit 时,浏览器会调用一个委托函数didRequestDocumentCreationWithHandler,让应用程序在继续之前注入一些 UI 以选择文档类型。事实上,您可以做的是为文档浏览器提供一个模板文件,用于创建新文档。这在 SwiftUI 2 中可能吗?

0 投票
3 回答
749 浏览

swiftui - Swift UI 2 DocumentGroup 获取导航栏按钮操作

在此处输入图像描述

我正在为iOS 14(目前正在开发Beta )项目使用新的“ DocumentGroup ”场景,我真的不知道如何检测导航栏中的事件,例如按“<”或返回(见屏幕) “DoucmentGroup”场景的预定义导航栏。对于自定义按钮,它是可能的,并且改变栏的样式(如灰色)也没什么大不了的。我尝试禁用按钮,向导航栏添加新按钮等。以下示例是您要在 Xcode 中创建新的基于文档的应用程序时的标准代码:

}

}

0 投票
0 回答
1058 浏览

swiftui - 如何在不启动文件选择器的情况下制作 SwiftUI DocumentGroup 应用程序?

如果用户使用 Xcode 中的 Document App 模板创建 SwiftUI 应用程序,macOS 会从一个新文档开始。这很好。我可以使用它在新文档中呈现入职 UI。

然而,在 iOS 上运行相同的应用程序时,库存文档视图控制器会向用户致意以创建或选择文档。

这没有帮助,因为我无法提供入职或任何其他自定义信息。

我确实注意到,如果您将 WindowGroup 添加到场景中,应用程序将显示该窗口组。但后来我不知道如何让用户进入选择器 UI。

有没有人想出如何在这个基于 DocumentGroup 的应用程序之上执行诸如呈现入职之类的事情?

这是一个完整的文档应用程序

0 投票
2 回答
679 浏览

swiftui - SwiftUI 中“DocumentGroups”的“FileDocument”和“ReferenceFileDocument”有什么区别?

我正在尝试DocumentGroup在我的应用程序中设置一个,但还没有ReferenceFileDocument适用于的示例。我知道 aFileDocument是什么,但ReferenceFileDocuments 有什么不同。

文档中它说的是:

ReferenceFileDocument 的一致性预计是线程安全的,反序列化和序列化将在后台线程上完成。

0 投票
1 回答
188 浏览

ios - 在基于文档的应用程序中隐藏文件扩展名 - DocumentGroup 和 UIDocumentBrowser

我已经开发基于文档的应用程序超过 12 个月了。它已经上架了,到目前为止一切都进展顺利,除了自 iOS 13 以来我一直无法解决的问题。

内置文件查看器显示我所有的应用程序文件扩展名。我已经使用 DocumentGroup 在 SwiftUI 中重写了应用程序,但也看到了 UIDocumentBrowser 的问题。

甚至 Apple 自己的Particles 演示应用程序也存在此问题。

我认为这可能是一个错误,对此我无能为力,但我也没有看到其他人谈论这个。所以这同样可能是我做错的事情。

是否有可能我需要更改的设置?

  • 我看了看,NSFileExtensionHidden但这已经设置为true。
  • 查看浏览器中的其他文件 - 在我的应用程序中 - 显示这些文件的扩展名已隐藏。但这可能只是因为我的应用程序不支持打开它们。

在此处输入图像描述

0 投票
0 回答
135 浏览

ios - SwiftUI / iOS 14:如何使用基于文档的(DocumentGroup)应用程序恢复上一个活动文档(状态?)

我正在使用 Xcode 提供的 SwiftUI 多平台、基于文档的应用程序模板。到目前为止,一切都“一帆风顺”,如果你愿意的话,但是我无法弄清楚我认为是“内置”的东西:

如果由于某些操作系统管理原因应用程序被“杀死”(或者如果故意在 Xcode 中停止它),当重新启动时,应用程序会“忘记”用户正在处理的文档,并开始显示文档浏览器。

我查看了文档,发现了一篇题为“ Restoring your app's state with SwiftUI ”的文章——这篇文章提供了一个非基于文档的应用程序的示例代码,但对于我来说,我什至无法开始理解它是什么我应该这样做以使其适应基于文档的(DocumentGroup)场景。

我“理解”了 SceneStorage 的概念,我什至能够保留一些声明为示例 ContentView 的 SceneStorage 属性的随机文本,但我不明白我应该如何使用它来重新启动应用程序时,最后打开文件,好吧,重新打开。

我有点尝试在@main 代码声明中执行此操作,但无法使其工作。此外,在这种情况下,谷歌并不是我的朋友——无法在任何地方找到这种特殊情况的单个示例。

我知道我可能会以“菜鸟”的身份通过(我是......)而且这是相当新的,所以我应该期待周围缺乏“东西”,而且这不应该那么难,所以请原谅我的“菜鸟” -iness”提前。

如果有人对如何实现这一点有任何想法,或者可以将我指向一个带有基于文档/DocumentGroup 应用程序的 WORKING 示例,我将永远感激不尽。

0 投票
3 回答
759 浏览

ios - iOS/iPadOS 中的 SwiftUI + DocumentGroup:如何重命名当前打开的文档

我的问题是关于 SwiftUI 的 DocumentGroup:在 Xcode 中使用一个简单的、基于模板的项目(使用新的多平台、基于文档的应用程序模板),我可以创建新文档、编辑它们等。此外,“在应用程序之外” , 我可以像这样操作文档文件 - 移动它、复制它、重命名它等等。

默认情况下,所有新文档都以“无标题”名称初始化;在主应用程序入口点,我可以访问文件的 URL:

第一个问题:一旦文档“打开”,即代码在范围内运行时,如何编辑/更改实际文件名 ContentViewSwiftUI 文档的缺乏使得寻找此类问题的答案变得非常困难——我想我已经在整个互联网上大肆抨击,但似乎没有人遇到这类问题,如果他们这样做,他们发布的问题也没有答案- 我自己在其他问题上发布了几个问题,甚至没有得到任何评论,更不用说答案了。

我还有另一个问题,我认为这有点相关:例如,我在“文件”应用程序中看到,某些文件类型在选择时可以在该文件的“信息”窗格下显示其他扩展信息(例如:视频文件以像素、持续时间和编解码器信息显示尺寸);我的应用程序的文档包含几个值(在保存的数据中),我希望用户能够在文档选择器中“一目了然”,而无需打开文件本身,其方式与“文件”应用程序描述的方式类似.

我的第二个问题是:这可能吗?如果可以,我至少可以从哪里开始寻找答案?我的猜测是,这对于现在的 SwiftUI 来说是“不可能的”,所以它必须与“常规”Swift 集成?

提前感谢您的任何指导。

0 投票
0 回答
49 浏览

swiftui - 更改 DocumentGroup 中的默认“创建文档”标签

SwiftUI DocumentGroup 允许我们轻松创建基于文档的应用程序。我正在考虑自定义 DocumentGroup。

我们如何更改标签“创建文档”?我是否忽略了修饰符?在我的用例中,术语“文档”实际上是一个不好的名称,我想通过将其设置为其他内容来使 UI 更清晰。

0 投票
1 回答
435 浏览

macos - 在 SwiftUI DocumentGroup macOS 中创建并打开一个新文档

如何在基于 SwiftUI ReferenceFileDocument 的应用程序中打开新文档窗口?

背景

此 macOS 应用程序以编程方式WindowGroups使用.handleEvents(:). 不幸的是,这会导致文件/新建菜单将这些窗口组的名称包含在“新建...窗口”中(如图所示)。未能找到覆盖该包装的方法,我试图完全使用CommandGroup(replacing: .newItem) {}.

然而,我也未能重新制作“创建并打开一个新的文档窗口”命令。我试过搜索一些通知来发布和申请.handleEvents。这只会使现有的打开文档窗口成为关键窗口。没有打开的文档,它什么也不做。

不需要的包装

在此处输入图像描述

卡在接线“新项目”更换

在此处输入图像描述

0 投票
1 回答
168 浏览

swiftui - 如何使用 SwiftUI DocumentGroup 读取大文件而不制作临时副本?

我制作了一个 SwiftUI DocumentApp,它可以读取大型媒体文件但不需要编写它们。在我的文档中,我只想存储文件的 URL,以便可以使用例如 AVAudioFile 加载它。我无法解决如何在不创建文件的临时副本的情况下执行此操作,就像作者在此处所做的那样,因为无法从 fileWrapper 获取文件 URL

我试图使用 configuration.file.regularFileContents (Data) 创建一个管道,但到目前为止我没有成功从该管道读取。