是否可以滚动到TextEditor当前光标位置?
我有 aList作为TextEditor最后一行。我滚动到最后一行,List以确保 位于TextEditor键盘上方。
问题是,由于我将滚动锚设置为.bottom,因此在编辑长文本时,当滚动视图滚动到行的底部时,顶部的文本不可见。
您应该能够使用以下代码重新创建问题。只需输入一些长文本,然后尝试在顶部编辑该文本。
import SwiftUI
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
List{
ForEach(items, id: \.self) {
Text("\($0)")
}
TextEditor(text: $newItemText)
.onChange(of: newItemText) { newValue in
proxy.scrollTo("New Item TextField", anchor: .bottom)
}.id("New Item TextField") …Run Code Online (Sandbox Code Playgroud)