SwiftUI List切换默认键盘至decimalPad时意外下滚导致聚焦输入框被遮挡的问题求助
SwiftUI List切换默认键盘至decimalPad时意外下滚导致聚焦输入框被遮挡的问题求助
各位SwiftUI开发者们,求助!我最近碰到一个超闹心的问题:在SwiftUI的List组件里,当TextField从默认键盘切换到decimalPad类型的键盘时,List会毫无理由地向下滚动,结果就是当前正聚焦的输入框直接被键盘给挡住了,完全没法正常输入和查看内容。
我贴一下目前的代码片段,大家帮我看看哪里出问题了:
struct ListTextField: View { @State private var focusedFieldID: Int? @FocusState private var focusedField: Int? var body: some View { ScrollViewReader { proxy in List { ForEach(0 ..< 12) { index in Group { TextField("输入项 \(index)", text: .constant("")) .focused($focusedField, equals: index) .keyboardType(index % 2 == 0 ? .default : .decimalPad) .onTapGesture { focusedField = index focusedFieldID = index // 本来想用ScrollViewReader定位,但好像没效果 proxy.scrollTo(index, anchor: .center) } } } } } } }
我本来想着用ScrollViewReader来手动控制滚动位置,确保聚焦的输入框能显示出来,但试了之后发现完全没起作用,切换键盘的时候List还是会自己乱滚。有没有大佬遇到过类似的情况?求指点一下怎么解决这个问题,感激不尽!
备注:内容来源于stack exchange,提问作者arterzz
相关产品推荐
相关产品推荐

