我的问题是关于 SwiftUI 的 DocumentGroup:在 Xcode 中使用一个简单的、基于模板的项目(使用新的多平台、基于文档的应用程序模板),我可以创建新文档、编辑它们等。此外,在应用程序“外部” ,我可以这样操作文档文件 - 移动它、复制它、重命名它等等。
默认情况下,所有新文档都以“Untitled”名称初始化;在主应用程序入口点,我可以访问文件的 URL:
var body: some Scene {
DocumentGroup(newDocument: ShowPLAYrDocument()) { file in
// For example, this gives back the actual doc file URL:
let theURL = file.fileURL
ContentView(document: file.$document)
}
}
Run Code Online (Sandbox Code Playgroud)
第一个问题:一旦文档“打开”,即当代码在 的范围内运行时,如何编辑/更改实际文件名 ContentView?SwiftUI 文档的缺乏使得寻找此类问题的答案变得非常困难 - 我想我已经搜索了整个互联网,但似乎没有人遇到此类问题,即使他们遇到了,他们发布的问题也没有答案- 我自己就其他问题提出了几个问题,甚至没有得到任何评论,更不用说答案了。
我还有另一个问题,我认为有些相关:例如,我在“文件”应用程序中看到,某些文件类型在选择时可以在该文件的“信息”窗格下显示其他扩展信息(例如:视频文件显示像素尺寸、持续时间和编解码器信息);我的应用程序的文档包含几个值(在保存的数据内),我希望用户能够在文档选择器中“浏览”这些值,而无需打开文件本身,其方式与文件应用程序中所述的类似。
我的第二个问题是:这可能吗?如果可以,我至少可以从哪里开始寻找答案?我的猜测是,这对于 SwiftUI 目前来说是“不可能”的,所以它必须与“常规”Swift 集成?
预先感谢您的任何指导。
我有一些 HTML 代码需要设置样式,这些代码由 Web 服务自动生成。我得到的部分代码如下所示:
<input type='text' id='txtField001' class='txtField150'>foo</input>
<input type='text' id='txtField002' class='txtField10'>bar</input>
<input type='text' id='txtField001' class='txtField142'>sum</input>
Run Code Online (Sandbox Code Playgroud)
现在,“奇怪”的部分来了:类名后面的数字(即:150、10 和 142)实际上是最大值。文本字段接受的字符数,它给了我一个关于文本字段应该呈现多宽的“提示”:宽为 150,较短为 10;由于这个数字变化很大(它是由调用 Web 服务的任何人定义的用户),让“n”类符合所有可能的值是不切实际的。
那么:有没有办法拥有“范围类”或类似的东西 - 请记住,理论上,我无法更改 Web 服务提供的任何内容,而且我真的不想用 javascript 评估事物?
具体来说,有没有办法声明这样的事情(我知道这有点疯狂):
.txtField1 ... .txtField50 {
width: 50px;
}
.txtField50 ... .txtField100 {
width: 80px;
}
.txtField100 ... .txtField150 {
width: 120px;
}
Run Code Online (Sandbox Code Playgroud)
(我是如何在脑海中读到这个的:“对于从 1 到 50 的任何类 txtField,使用 50px 宽度......等等)
谢谢你的帮助。我知道这是一个远景,我最好的选择是使用 javascript,但是嘿,我不得不问;-)