小编Fab*_*bio的帖子

使 TextEditor 动态高度 SwiftUI

TextEditor我正在尝试为聊天视图创建不断增长的输入。

目标是拥有一个可以扩展的盒子,例如达到 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
                                    }
                                })
                            })
Run Code Online (Sandbox Code Playgroud)

我创建了一个字符串扩展,它通过调用返回换行符的数量string.numberOfLines() var startHeight: CGFloat = 50

问题:如果我粘贴包含很长文本的文本,当该字符串没有换行符时,它不会扩展。文本编辑器中的文本被破坏。

如何计算文本编辑器的中断次数并在该位置放置新行字符?

string height text dynamic swiftui

5
推荐指数
1
解决办法
2641
查看次数

标签 统计

dynamic ×1

height ×1

string ×1

swiftui ×1

text ×1