TextEditor (SwiftUI) 中的行限制不起作用

Ant*_*ony 9 swiftui

我看到很多答案只是简单地说使用 limit limit view 修饰符,但它似乎不起作用:

mport SwiftUI

struct TextEditorTest: View {
    
    @State var text: String = "Type in here"
    
    var body: some View {

        VStack {
                            
                Text("Sample Text A")
                
                TextEditor(text: $text)
                    .lineLimit(3)
                
                Spacer()
        }
    }
}

struct TextEditorTest_Previews: PreviewProvider {
    static var previews: some View {
        TextEditorTest()
    }
}

Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

ars*_*ius 0

不幸的是,这似乎仍然是 iOS 17 中的一个问题。解决方法是使用Text然后覆盖TextEditor.

struct TextView: View {
    @Binding var text: String
    var fixedHorizontal: Bool = false
    var fixedVertical: Bool = true
    
    var body: some View {
        Text(self.text)
            .frame(maxWidth: .infinity, maxHeight: .infinity)
            .hidden()
            .overlay {
                TextEditor(text: self.$text)
                    .padding(.horizontal, -5.0) // default NSTextContainer.lineFragmentPadding
                    .padding(.vertical, -8.0) // default UITextView.textContainerInset
            }
            .clipped() // Stop the TextEditor's extra lines from appearing
            .fixedSize(horizontal: self.fixedHorizontal, vertical: fixedVertical)
    }
}

Run Code Online (Sandbox Code Playgroud)