gpt4 book ai didi

swift - 当键盘出现在 SwiftUI 中时,向上移动文本编辑器(在列表中)

转载 作者:行者123 更新时间:2023-12-05 04:41:32 65 4
gpt4 key购买 nike

我有一个 SwiftUI List,最后一行是 TextEditor。在 SwiftUI 中,文本字段会自动向上移动到键盘上方。但不幸的是,当 TextEditor 在 List 中时,它似乎不起作用。

在使用 TextField 时,有很多好的解决方案,例如:- Move TextField up when the keyboard has appeared in SwiftUI .但是在使用 TextEditor 时,它们似乎都不起作用。


struct ContentView: View {

@State var items: [String] = ["Apples", "Oranges", "Bananas", "Pears", "Mangos", "Grapefruit","Apples", "Oranges", "Bananas", "Pears", "Mangos", "Grapefruit"]

@State private var newItemText : String = ""


var body: some View {
ZStack(alignment: Alignment.bottom) {
List{
ForEach(items, id: \.self) {
Text("\($0)")
}
TextEditor(text: $newItemText)
}

}
}
}

最佳答案

似乎 View 会自动调整大小,使其位于键盘上方。所有需要做的就是滚动到列表的最后一行。

struct ContentView: View {

@State var items: [String] = ["Apples", "Oranges", "Bananas", "Pears", "Mangos", "Grapefruit","Apples", "Oranges", "Bananas", "Pears", "Mangos", "Grapefruit"]

@State private var newItemText : String = ""


var body: some View {
ScrollViewReader { (proxy: ScrollViewProxy) in
ZStack(alignment: Alignment.bottom) {
List{
ForEach(items, id: \.self) {
Text("\($0)")
}
TextEditor(text: $newItemText)
.onChange(of: newItemText) { newValue in
proxy.scrollTo(999, anchor: .bottom)
}.id(999)
}

}
}
}
}

关于swift - 当键盘出现在 SwiftUI 中时,向上移动文本编辑器(在列表中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70034781/

65 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com