多行文本字段在宽度更改后未正确换行文本

问题描述 投票:0回答:1

在 macOS 上,文本字段宽度更改后,多行

TextField
无法正确换行。我想知道是否有人知道这是否是一个错误,或者是否需要在 macOS 上额外完成一些操作。

在 iOS 上,宽度变化

TextField
后文本会正确重新换行。

初始宽度: Initial width

增加宽度: Increases width

减少宽度: Reduced width

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")
                }
            }
        }
    }
}
swift xcode macos swiftui textfield
1个回答
0
投票

你可以尝试添加

.id(width)

TextField

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.