相关疑难解决方法(0)

滚动到 SwiftUI 中的 TextEditor 光标位置

是否可以滚动到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)

swift swiftui swiftui-list swiftui-texteditor

8
推荐指数
1
解决办法
4271
查看次数

标签 统计

swift ×1

swiftui ×1

swiftui-list ×1

swiftui-texteditor ×1