宣威市住房与城乡建设局网站wordpress 五分钟

pingmian/2026/1/20 4:59:03/文章来源:
宣威市住房与城乡建设局网站,wordpress 五分钟,遵义在线招聘网,重庆网址概览 在 SwiftUI 中写一个自定义文件内容的管理器有多难呢#xff1f; 答案可能超乎小伙伴们的想象#xff1a;仅需4步#xff01;可谓是超级简单#xff01; 在本篇博文中#xff0c;您将学到如下内容#xff1a; 概览1. 第一步#xff1a;定义文件类型2. 第二步 答案可能超乎小伙伴们的想象仅需4步可谓是超级简单 在本篇博文中您将学到如下内容 概览1. 第一步定义文件类型2. 第二步创建文件新建/编辑界面3. 第三步DocumentGroup 为您解忧 4. 第四步快使用系统文件浏览器System’s Document Browser总结 还等什么呢Let‘s gogogo 1. 第一步定义文件类型 为了将 App 无缝集成到文件管理器中我们首先需要创建自己的文件类型。 根据应用功能的复杂程度我们的自定义文件类型可以“平静如水”也可以“惊天动地”。 在这里我们不想搞得太过复杂而吓跑一些小伙伴们所以一切从简 import SwiftUI import UniformTypeIdentifiersstruct ColorText: Codable{enum ContentColor: Codable, CaseIterable, Identifiable {case red, green, blue, gray, orangevar color: Color {switch self {case .red:.redcase .gray:.graycase .green:.greencase .blue:.bluecase .orange:.orange}}var id: Color {color}}// 自定义文件中包括文本和文本对应的颜色仅此而已var text var color ContentColor.red }struct PandaTextFile: FileDocument {static var readableContentTypes [UTType.data]// 文件名var name: String?var content: ColorTextinit(initialText: String , color: ColorText.ContentColor .red) {content .init(text: initialText, color: color)}// 自定义文件的解码init(configuration: ReadConfiguration) throws {guard let data configuration.file.regularFileContents else {throw CocoaError(.fileReadCorruptFile)}name configuration.file.filenamelet decoder JSONDecoder()let colorText try decoder.decode(ColorText.self, from: data)content colorText}// 自定义文件的编码func fileWrapper(configuration: WriteConfiguration) throws - FileWrapper {let data try JSONEncoder().encode(content)return FileWrapper(regularFileWithContents: data)} }// 为预览而生 extension PandaTextFile {static var preview: PandaTextFile {.init(initialText: Hello大熊猫侯佩)} }如上所示我们在自定义文件中保存了文本和文本对应的颜色仅此而已。 2. 第二步创建文件新建/编辑界面 在自定义文件类型“羽翼丰满”之后接下来是写一个与其对应的新建和编辑界面。它起到“承上启下” 后面 DocumentGroup 的重要作用 import SwiftUIstruct NewPandaTextFileView: View {Binding var document: PandaTextFilevar body: some View {NavigationStack {VStack {TextEditor(text: $document.content.text).font(.title3.weight(.bold)).foregroundStyle(document.content.color.color)Grid(horizontalSpacing: 16) {GridRow {ForEach(ColorText.ContentColor.allCases) { cc incc.color.frame(width: 50, height: 50).border(document.content.color cc ? .black : .clear, width: 5).onTapGesture {document.content.color cc}}}}}.padding().navigationTitle( \(document.name ?? 无名文件))}} }struct Preview: View {State var file PandaTextFile.previewvar body: some View {NewPandaTextFileView(document: $file)} }#Preview {Preview() }在完成了 NewPandaTextFileView 之后我们可以立即在 Xcode 预览中一睹它的真容 3. 第三步DocumentGroup 为您解忧 有了自定义文件类型和对应的编辑视图之后我们随即可以将他们和 DocumentGroup “无缝”的连接起来。 简单来说DocumentGroup 是一个可以用于打开、创建以及保存文档的 Scene。 我们可以将它直接嵌入到 App 结构中代替 WindowGroup 来构建一个基于文档应用的宏观布局 import SwiftUImain struct DocBasedAppDemoApp: App {var body: some Scene {DocumentGroup(newDocument: PandaTextFile()) { file inNewPandaTextFileView(document: file.$document)}} }可以看到在 DocumentGroup 闭包中我们将之前创建的 NewPandaTextFileView 文件编辑视图作为自定义文档的 editor 水到自然渠成Nice init(newDocument: autoclosure escaping () - Document,ViewBuilder editor: escaping (FileDocumentConfigurationDocument) - Content )4. 第四步快使用系统文件浏览器System’s Document Browser 在用 DocumentGroup “串联”一切之后我们只差一步 我们只需要对系统说“请把我融入您文件浏览器宽广的胸怀中去吧”即可享受它带给我们关于文档管理上的“解囊相助”。 进入 Xcode 中项目目标的 info 窗口新建一个名为 “Supports Document Browser” 的键并将其值设置为 Yes 确保操作无误后最后运行 App 感受一下系统文件浏览器给我们带来的“如虎添翼” 仅仅 4 步之后一个小巧且“五脏六腑俱全”的文件管理器跃然而出了小伙伴们给自己点一个大大的赞吧棒棒哒 更多 SwiftUI 自定义文件管理器的相关实现请小伙伴们移步如下链接进一步观赏 SwiftUI 实现一个 iOS 上 Files App 兼容的文件资源管理器 总结 在本篇博文中我们讨论了如何在 SwiftUI 中仅需 4 步就完成一个“麻雀虽小却五脏俱全”的自定义文件管理器相信学完本课小伙伴们都会受益良多。 感谢观赏再会

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/87638.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

贵州省遵义市住房城乡建设局网站拓者设计吧官网效果图

使用场景:页面需要定时刷新,实时加载数据,需要实时查看监控数据(H5中的WebSocket和SSE可以实现局部刷新)一定时间之后跳转到指定页面(登录注册之类)前端开发使用伪数据调试html页面(…

金融公司网站源码浙江省建设厅网站查询

文章目录 简单介绍RabbitMQRabbitMQ架构什么是 RabbitMQ?有什么显著的特点?RabbitMQ 有那些基本概念?RabbitMQ routing 路由模式消息怎么路由?RabbitMQ publish/subscribe 发布订阅(共享资源)能够在地理上分开的不同数据中心使用 …

苏州h5网站建设价钱搜素引擎排名优化

目录 一.安装elasticsearch 1.拉取镜像 2.创建存放数据及配置文件的文件夹,启动时挂载。 4.修改文件夹权限 5.启动容器 5.1参数解释 6.安装ik分词器 6.2测试一下Ik分词器 二.添加文章索引库 1查询所有的文章信息,批量导入到es索引库中 2)测试 …

做公众号的网站模板下载wordpress美术馆插件

在 Golang 的日常开发中,往往要面对各种和操作系统相关的操作,例如文件的读写、环境变量的处理、程序参数的获取等等。Golang 的 os 标准库为我们提供了与操作系统打交道的各类工具,能让这些操作变得更加简洁和简单。 基础应用 文件的读写操…

关于网站开发的外文书籍搞笑图片网站源码

简介: minicoredump神也! 继上一篇非典型程序员青囊搞定内存泄露问题后,美美地睡了一觉。睡梦中,突然金光闪闪,万道光芒照进时光隧道,恍惚来到大唐神龙年间。青囊此时化身狄仁杰高级助理,陪同狄…

手机建站程序下载个网上销售网站

从架构的角度看来,Asterisk是由许多不同的模块组成的。在设计基于Asterisk的系统时,这种模块化的特性,提供了几乎无限的灵活必。作为Asterisk系统管理员,你拥有选择加载模块的权利。你所加载的每一个模块,都提供了不同…

所有的网站都要用htmlu做吗超级优化残剑

项目开发经验谈:项目的到底谁说了算 前言:项目到底是为谁而做,一个项目的成功到底是怎么样在评价:是领导阶层肯定,还是客户满意? 系列文章链接 项目开发经验谈:如何成为出色的开发人员盲目的项目…

net网站建设语言小型网站开发需要什么步骤

缘起 我在上一篇文章——《调试实战 —— dll 加载失败之全局变量初始化篇》中,跟大家分享了一个由于全局变量初始化顺序导致的 dll 加载失败的例子。感兴趣的小伙伴儿可以点击阅读。虽然我们知道了是由于全局变量初始化顺序导致的问题,也给出了解决方案…

哈密做网站公众号引流推广平台

先介绍一下本文的作者,本人本科来自于某双非财经类院校,于2019年考入南开大学某应用经济学专业,在2019年考研初始专业课826经济学基础(也就是20年的823)中拿到了138分的成绩,自认为对专业课的复习有一定心得…

自助建设彩票网站在建立网站站点的过程中

经常做的一个操作,列出数据库中一个表的所有列名。方法如下:先从SYSTEMOBJECT系统表中取得数据表的SYSTEMID,然后再从SYSCOLUMN表中取得该表的所有列名。SQL语句如下:use dbname --dbname改为你要…

cms企业网站模板大连微信公众号开发公司

宇宙射线也叫电磁波,其中包含γ射线、X射线、紫外线、可见光、红外线、近红外、远红外,还有无线电和超声波。 无线电波是振荡电路中自由电子作周期性的运动产生的. 红外线、可见光、紫外线是原子外层电子受激发产生的. X射线是原…

免费dede企业网站模板鞍山网站怎么做出来的

电机特性 电机堵转: 电机堵转的原理 玻璃升降器: 工作电压 升降器在 9V~16V 电压下应运行平稳,不允许有异音和卡滞现象。 工作电流 升降器的工作电流不大于 12A,堵转电流不大于 28A。 堵转 力 升降器 堵转 力应 不小于 212N。 玻璃升降器结构 电动车窗…

天津市网站建设 网页制作做汽车配件生意的网站

总结: ①没有byte的字面值,赋值时需要强制转换类型 ②涉及运算,系统自动进行类型升级,由此用final修饰,代表这是一个不会更改值的常量,通过编译 感受:还是用int吧,自动类型转换太复…

青岛 企业网站建站如何去做电商

应用分层 在开发的过程中, 我们会发现, 程序的代码有时会很"杂乱", 如果后面的项目更大了, 那就会更加地杂乱无章(文件乱, 代码内容乱). 也基于此, 接下来让我们来学习一下应用分层. 也类似于公司的组织架构 公司初创阶段, 一个人身兼数职, 既做财务, 又做人事,还有…

jrs直播网站谁做的网站建设所用的工具

初中数学课程标准修改后,教材中四点共圆知识已经删除掉了,但这样一件强悍且使用简单的武器,我们还是有必要去了解的,近年来对于压轴题以几何为核心的考区来说,有时用到解题更为简洁方便,由此应该理解掌握。…

怎么做加盟美容院网站完美代码网站

注: 在《SVD(异值分解)小结 》中分享了SVD原理,但其中只是利用了numpy.linalg.svd函数应用了它,并没有提到如何自己编写代码实现它,在这里,我再分享一下如何自已写一个SVD函数。但是这里会利用到SVD的原理,…

企业建设网站方案建筑网片厂家货源平台

1.定义 trait trait 定义了某个特定类型拥有可能与其他类型共享的功能。可以通过 trait 以一种抽象的方式定义共享的行为。可以使用 trait bounds 指定泛型是任何拥有特定行为的类型。 一个类型的行为由其可供调用的方法构成。如果可以对不同类型调用相同的方法的话&#xff…

做网站的费用wordpress链接在哪里设置

【摘要】数据安全是计算机安全问题的核心,对于很多具有高度保密要求的单位,安全地存储重要数据,并且在不需要这些数据时作彻底销毁不被他人恢复是至关重要的。本文详细介绍了数据安全存储技术的发展现状,并结合典型的企业信息安全…

2013年以前pc网站建设找网页模板的网站好

产品概述: NCV8705 是一款低噪音、低功耗和低泄漏线性电压稳压器。该器件具有卓越的噪音和 PSRR 规格,适用于使用视频接收器、成像传感器、音频处理器或需要外部洁净电源的任何部件的产品。NCV8705 使用创新的自适应接地电流电路 可确保轻负载调节下的超…

建设网站怎么加购物车网站模板模板

SSH密钥文件 Github里面S设置SH公钥有两者选择方式 账号下的每个仓库都设置一个公钥,因为GitHub官方要求每个仓库的公钥都不能相同,所以每个账号都要搞一个密钥(很麻烦)给账号分配一个公钥,然后这个公钥就可以在这个…