swiftui - TextField iOS 15 事件即将改变,未完成
问题描述
iOS 14:编辑完成时 TextField 更改“值”(键盘隐藏)。
iOS 15:TextField 在编辑期间每次更改都会更改“值”(显示键盘)
是否有可能以某种方式使 iOS 15 中的行为与 iOS 14 中的行为相同?
以下是代码示例:
struct ContentView: View {
@State private var number: Int = 0
var body: some View {
VStack {
Text("Hello, world!")
Text("number: \(self.number)")
TextField("Number", value: self.$number, formatter: NumberFormatter())
.disableAutocorrection(true)
.background(Color.gray)
}
.padding(.horizontal, 100)
}
}
还存在更新 TextField 中的值的问题(iOS 15):
struct ContentView: View {
@State private var number: Int = 0
private var bindingNumber: Binding<Int> {
.init {
self.number
} set: {
self.number = $0 % 10
}
}
var body: some View {
VStack {
Text("number: \(self.number)")
TextField("Number", value: self.bindingNumber, formatter: NumberFormatter())
.disableAutocorrection(true)
.background(Color.gray)
}
.padding(.horizontal, 100)
}
}
如果您输入“44444”并完成编辑,TextField 不会将其值更改为“4”
解决方案
推荐阅读
- php - 为什么 localhost 路径重定向到 Web URL?
- python - 我怎么刮?
- azure - 自动将 Azure Webapp wwwroot 目录备份到 azure blob 存储
- json - JQ:从 JSON 中删除空数组
- reactjs - 错误:动态 SSG 页面需要 getStaticPaths,并且 nextjs 中的“/category/[...Id]”缺少
- highcharts - 使用自定义节点宽度居中组织 highcharts
- java - VS Code Java 似乎在每次击键时都在编译
- laravel - 在 laravel 黄昏测试期间设置标题
- react-native - 如何在 React Native 中从功能组件调用函数?
- python - 无法在 django 中使用电子邮件登录