gpt4 book ai didi

ios - 带有 .Vertical axis going below keyboard 的多行文本字段

转载 作者:行者123 更新时间:2023-12-05 05:31:33 25 4
gpt4 key购买 nike

我遇到一些问题,文本字段没有随 View 一起移动。

我正在使用带有垂直轴 (iOS 16) 的文本字段来创建多行。当它未嵌入 ScrollView 时,它可以正常工作并按预期保持在键盘上方。但是一旦文本字段嵌入到 ScrollView 中,多行就在键盘下方,您必须手动滚动才能看到最后一行。

请看下面的代码。这应该可以正常工作。但是,如果您删除 ScrollView ,您会在输入时注意到这个问题。

struct ContentView: View {
@State private var text = "Lorem ipsum dolor sit amet. Nam voluptatem necessitatibus aut quis odio rem error repudiandae id aliquam perferendis et quidem quaerat et enim harum! Cum nesciunt animi rem quia vero aut omnis eligendi in ducimus eaque sit mollitia fugit est animi nesciunt. Ut exercitationem nulla qui dolor nihil ad autem vero quo internos sapiente eum dicta nihil qui exercitationem cumque et consectetur dolore. Et fugiat officiis non harum voluptas et modi repellendus ut repellat dolorem 33 eveniet quidem qui galisum veritatis. Id consequatur tenetur et eaque voluptas in assumenda delectus et fuga praesentium rem provident delectus est necessitatibus sunt quo dignissimos dolorum. Et reiciendis error et rerum eligendi qui illum error? In soluta ipsum est molestiae pariatur hic voluptas animi qui cupiditate amet."

var body: some View {

ScrollView {
VStack() {
TextField("Enter something", text: $text, axis: .vertical)
.textFieldStyle(RoundedBorderTextFieldStyle())
}
}
}
}

如果您知道任何 GitHub 存储库,那也很好。

更新:我找到了解决方案,并将在未来几天内发布。

最佳答案

这不是一个确定的答案。在模拟器中出现了一些错误行为。尝试一下并在真实设备上查看(我这里没有)。

import SwiftUI

struct ContentView: View {

@State private var text = "Lorem ipsum dolor sit amet. Nam voluptatem necessitatibus aut quis odio rem error repudiandae id aliquam perferendis et quidem quaerat et enim harum! Cum nesciunt animi rem quia vero aut omnis eligendi in ducimus eaque sit mollitia fugit est animi nesciunt. Ut exercitationem nulla qui dolor nihil ad autem vero quo internos sapiente eum dicta nihil qui exercitationem cumque et consectetur dolore. Et fugiat officiis non harum voluptas et modi repellendus ut repellat dolorem 33 eveniet quidem qui galisum veritatis. Id consequatur tenetur et eaque voluptas in assumenda delectus et fuga praesentium rem provident delectus est necessitatibus sunt quo dignissimos dolorum. Et reiciendis error et rerum eligendi qui illum error? In soluta ipsum est molestiae pariatur hic voluptas animi qui cupiditate amet."

@Namespace var bottomText

var body: some View {
ScrollViewReader { proxy in
ScrollView {
Text("Title")
.font(.largeTitle)
TextField("Enter something", text: $text, axis: .vertical)
.textFieldStyle(RoundedBorderTextFieldStyle())
.onChange(of: text) { newValue in
print("Fired.")
withAnimation {
proxy.scrollTo(bottomText, anchor: .center)
}
}
Color.red.frame(height: 50).id(bottomText)
}

}
}
}

关于ios - 带有 .Vertical axis going below keyboard 的多行文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74345451/

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