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
问题:如果我粘贴包含很长文本的文本,当该字符串没有换行符时,它不会扩展。文本编辑器中的文本被破坏。
如何计算文本编辑器的中断次数并在该位置放置新行字符?