在 macOS 上,文本字段宽度更改后,多行
TextField
无法正确换行。我想知道是否有人知道这是否是一个错误,或者是否需要在 macOS 上额外完成一些操作。
在 iOS 上,宽度变化
TextField
后文本会正确重新换行。
Xcode 15.4 macOS 索诺玛 14.5
示例项目:此处
代码:
struct Bug: View {
private static let defaultWidth: CGFloat = 200
@State private var text: String = ""
@State private var width: CGFloat = defaultWidth
var body: some View {
VStack(alignment: .leading) {
TextField(text: $text, axis: .vertical) {
Text("Label")
}
.frame(maxWidth: width)
HStack {
Button {
withAnimation(.smooth) {
width = 100
}
} label: {
Text("Smaller")
}
Button {
withAnimation(.snappy) {
width = Self.defaultWidth
}
} label: {
Text("Default")
}
Button {
withAnimation(.smooth) {
width = 300
}
} label: {
Text("Larger")
}
}
}
}
}
你可以尝试添加
.id(width)
到
TextField