swift - 列表选择为 Set- 如何使用?
问题描述
我在玩 SwiftUI,显然没有得到它。
基本示例,仅显示所选名称。
struct ContentView: View {
let names = ["Joe", "Jim", "Paul"]
@State var selectedName = Set<String>()
var body: some View {
VStack {
List(names, id: \.self, selection: $selectedName) { name in
Text(name)
}
if !selectedName.isEmpty {
Text(selectedName.first!) // <-- this line
}
}
}
}
我想要的是一个可以更改名称的文本字段。尝试了很多方法,但每次都会出现另一个错误。
TextField("Name", text: $selectedName)
给出此错误:无法将 'Binding<Set<String>>' 类型的值转换为预期的参数类型 'Binding<String>'
TextField("Name", text: $selectedName.first!)
无法强制解开非可选类型 'Binding<((String) throws -> Bool) throws -> String?>' 的值
我该怎么做?
解决方案
您可以自行绑定:
TextField("Name", text: Binding<String>(get: {self.selectedName.first!}, set: { _ in}) )
推荐阅读
- python - 如何在后者的第二维上将 2-d numpy 数组元素乘积成 3-d?
- windows-services - 升级到 .net 5 的 .NET core 2.1 Windows 服务无法从 MSI 安装程序运行
- image-processing - 有没有办法限制函数调用的内存使用?
- javascript - IMAGE COMPRESSOR Script [注意:只有变量应该通过引用传递]
- r - 为什么在 R 中使用 left_join() 时会出现“无效的 'times' 参数”错误?
- sql - SQL查询获取其他列中具有差异值的公共列
- c# - SQL CLR标量UDF中的DES解密不起作用
- java - IntelliJ 在运行配置部分显示大写
- javascript - FlatList numColumns 没有显示想要的结果
- java - 与 AND 运算符不同,按位运算符 XOR 和 OR 对负数的工作方式是否不同