升级到IOS 17.0后的Textfield错误

问题描述 投票:0回答:1

我有一个文本字段,允许用户输入他们的号码。昨天我升级到IOS 17.0之前一直运行良好。 升级到IOS 17.0后,当用户想输入另一个号码时,用户输入的号码无法清除。更具体地,最后一个数字不能被删除。例如,用户原来输入了50,他/她想删除它以输入另一个数字。但5不能删除,只能删除0。因此用户无法在文本字段中输入新数字。是IOS17.0的bug吗?我该如何解决它。我关于文本字段的代码如下:

 TextField("Focus Time", value: $userViewModel.focusTime, format: .number)
                                    .frame(width: 220, height: nil)
                                    .keyboardType(.numberPad)
                                    .textFieldStyle(.roundedBorder)
                                    .font(Font.system(size: 25, design: .default))
                                    .multilineTextAlignment(TextAlignment.center)
                                    .focused($textIsFocused1)
                                    .onTapGesture {
                                        textIsFocused1.toggle()
                                    }

swift swiftui textfield ios17
1个回答
0
投票

经过多次尝试,我发现该bug与EnvironmentObject var有关。如果我将 userViewModel.focusTime(这是一个 EnvironmentObject 变量)更改为 focusTime(这是一个 State 变量),则视图可以正常工作。没有任何问题。 iOS 17发布后,似乎不再支持一些基于CoreData的功能。所以是时候尽快切换到 SwiftData 了。

© www.soinside.com 2019 - 2024. All rights reserved.