【发布时间】:2021-09-25 10:11:50
【问题描述】:
我正在尝试创建一个不断增长的 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
}
})
})
我创建了一个字符串扩展,它通过调用 string.numberOfLines() var startHeight: CGFloat = 50 返回换行数
问题:如果我粘贴一个包含很长文本的文本,当该字符串没有换行符时,它不会扩展。文本在 TextEditor 中被破坏。
如何计算 TextEditor 的中断次数并在该位置放置一个换行符?
【问题讨论】:
标签: string text dynamic swiftui height