我在 SwiftUI 中有一个非常简单的
TextEditor
Form
,允许用户发送有关应用程序的反馈。
我想为文本字段设置
minHeight
和 maxHeight
,以便清楚用户可以输入多行。但是,我还想防止编辑器无限扩展并使其难以访问其他表单字段或提交按钮。
*问题:我面临的问题是,输入一段时间(或达到一定的输入长度)后,UI 开始出现意外行为 - 它开始在字段底部添加幻像空白(或填充)。在预览版、模拟器和真实设备上进行测试时会发生这种情况。
这是
TextEditor
的代码:
TextEditor(text: $description)
.frame(minHeight: 200, maxHeight: 400)
.disabled(processState.isRunning)
.fixedSize(horizontal: false, vertical: true)
.onChange(of: description) { _, newValue in
if newValue.count > characterLimit {
description = String(newValue.prefix(characterLimit))
}
}
我尝试过的:
.onChange
逻辑以排除该问题,但问题仍然存在。有没有人在 SwiftUI 中遇到类似的 TextEditor 问题,或者对如何修复或排查此问题有建议?
无法使用以下代码重现问题:
@main
struct TestSwiftUIApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
struct ContentView: View {
@State var description = ""
let characterLimit = 500
var body: some View {
TextEditor(text: $description)
.frame(minHeight: 200, maxHeight: 400)
.fixedSize(horizontal: false, vertical: true)
.onChange(of: description) { n`ewValue in
if newValue.count > characterLimit {
description = String(newValue.prefix(characterLimit))
}
}
.padding(10)
}
}
看起来您在这段代码之外遇到了问题。
在 MacOS 上检查。