macos - SwiftUI 有没有办法让禁用的 TextField 在 Mac OS 上变灰
问题描述
当 SwitfUI TextField 被禁用时,在 Mac OS 上,没有视觉反馈表明该字段不可输入(除了不接受焦点单击)。我搜索了高低,看起来简单地设置 .background(Color.whatever) 适用于 IOS(来自我遇到的所有“how tos”)。但是对于 Mac OS 应用程序,它只会更改文本字段的细边界的颜色。我摸索了一下,发现我可以添加不透明的叠加层来模拟效果,但这对于我一直认为的禁用字段变灰的传统标准来说似乎过于复杂。这让我觉得我在某处遗漏了一些非常明显的东西。
有没有人有一个 MacOS SwiftUI 结构的样本,它使禁用的 TextField 的背景变灰?我正在做什么以查看问题的最小示例如下。
struct ContentView: View {
@State var nameEditDisabled = true
@State var myText = "Fred"
var body: some View {
VStack {
Button("Change Name") {
nameEditDisabled.toggle()
}
TextField("hello", text: $myText)
.background(nameEditDisabled ? Color.gray: Color.yellow)
.disabled(nameEditDisabled)
}
}
}
解决方案
它似乎在 swiftUI 3.0、macos 12 中被“修复”了。禁用时,我的灰色阴影稍暗。当焦点对准时,我得到一个蓝色边框。
编辑:
struct ContentView: View {
@State var nameEditDisabled = false
@State var myText = "Fred"
var body: some View {
VStack {
Button("Change disabling") {
nameEditDisabled.toggle()
}
TextField("hello", text: $myText)
.colorMultiply(nameEditDisabled ? .gray: .yellow)
.disabled(nameEditDisabled)
}.frame(width: 444, height: 444)
}
}
推荐阅读
- r - 如何在等值线图上绘制出现点(经度/纬度)但放大特定区域?
- javascript - 如何在其他插件中显示图像 wordpress 媒体上传
- r - Environment 将自己分配给返回它的相同 R6 活动绑定。为什么?
- reactjs - 对 RAPID API 的 API 请求给出 StatusCode:401,
- powerbi - 删除雪花视图/表中的列后如何更新powerbi中的引用
- sql - 消息 241,级别 16,状态 1,第 12 行从字符串转换日期和/或时间时转换失败
- c# - 如何在 C# 中解析文本文件并连接到数据库?
- regex - 在 awk 中使用 not 运算符 (!) 的 grep 和 sed 中的等效正则表达式
- r - constrOptim() 错误:初始值不在可行域内部
- php - 使用 HAVING 查询耗时过长