Oli*_*ver 5 character-limit maxlength textfield swift5 swiftui
[解决]
我正在使用一个可编码的结构来存储从 API 调用中检索到的对象值,因此我使用 Cenk Belgin 的示例修改了我的 TextField,我还删除了我添加的额外位,因此如果其他人正在尝试做同样的事情那么他们将不会从我的应用程序中获得不需要的代码片段。
TextField("Product Code", text: $item.ProdCode)
.onReceive(item.ProdCode.publisher.collect()) {
self.item.ProdCode = String($0.prefix(5))
}
Run Code Online (Sandbox Code Playgroud)
Cen*_*gen 19
这是一种方法,不确定您提供的其他示例中是否提到了它:
@State var text = ""
var body: some View {
TextField("text", text: $text)
.onReceive(text.publisher.collect()) {
self.text = String($0.prefix(5))
}
}
Run Code Online (Sandbox Code Playgroud)
的text.publisher,因为它是类型化将公布每一个字符。将它们收集到一个数组中,然后只取前缀。
ron*_*y_y 12
从 iOS 14 开始,您可以将 onChange 修饰符添加到 TextField 并像这样使用它:
TextField("Some Placeholder", text: self.$someValue)
.onChange(of: self.someValue, perform: { value in
if value.count > 10 {
self.someValue = String(value.prefix(10))
}
})
Run Code Online (Sandbox Code Playgroud)
对我来说效果很好。
| 归档时间: |
|
| 查看次数: |
2154 次 |
| 最近记录: |