gpt4 book ai didi

string - 使文本编辑器动态高度 SwiftUI

转载 作者:行者123 更新时间:2023-12-04 14:54:18 36 4
gpt4 key购买 nike

我正在尝试创建一个不断增长的 TextEditor作为聊天 View 的输入。
例如,我们的目标是有一个可以扩展到 6 行的框。之后它应该是可滚动的。
我已经设法用包含换行符的字符串来做到这一点 \n .

                        TextEditor(text: $composedMessage)
.onChange(of: self.composedMessage, perform: { value in
withAnimation(.easeInOut(duration: 0.1), {
if (value.numberOfLines() < 6) {
height = startHeight + CGFloat((value.numberOfLines() * 20))
}
if value.numberOfLines() == 0 || value.isEmpty {
height = 50
}
})
})
我创建了一个字符串扩展名,它通过调用 string.numberOfLines() 返回换行符的数量。 var startHeight: CGFloat = 50问题:如果我粘贴一个包含很长文本的文本,当该字符串没有换行符时,它不会扩展。文本编辑器中的文本已损坏。
如何计算 TextEditor 的中断次数并在该位置放置一个新行字符?

最佳答案

我找到了解决办法!
对于其他试图解决这个问题的人:
我加了一个 Text与输入字段的宽度相同,然后使用 GeometryReader计算自动换行的文本的高度。然后,如果将高度除以字体大小,则会得到行数。
您可以隐藏文本字段(在 iOS 14 和 iOS 15 beta 3 中测试)

关于string - 使文本编辑器动态高度 SwiftUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68411824/

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