2

I start learning SwiftUI and I'm trying to make the TextField multiline but it didn't work, also when I click on the return button it dismisses the keyboard.

TextField("Description", text: $categoryTitle)
.lineLimit(nil)

so how I can fix it?

Adel Bassiony
  • 127
  • 2
  • 11

2 Answers2

4

Since iOS 16

The lineLimit modifier works as expected if you choose .vertical value for the axis parameter. And it also supports range now:

TextField("Title", text: $text, axis: .vertical)
    .lineLimit(5...10)

Demo


Since iOS 14

Form iOS 14 and with Xcode 12, it's available as TextEditor

struct ContentView: View {
    @State var text: String = "Multiline \ntext \nis called \nTextEditor"

    var body: some View {
        TextEditor(text: $text)
    }
}

iOS 13

Also, if you want to support iOS 13, you can take at look this answer to port UITextField inside SwiftUI with full access to all of its properties.

Mojtaba Hosseini
  • 95,414
  • 31
  • 268
  • 278
1

iOS 16.0+ supprts multiline TextField.

struct ContentView: View {

    @State private var description: String = """
                Join us, and let's force unwrap SwiftUl's
                birthday presents. Note that although
                this activity is optional, we may have
                guards at the entry.
                """

    var body: some View {
        Form {
           TextField("Description", text: $description, axis: .vertical)
              .lineLimit(5) // You can restrict min & max visible lines 
        }
    }
}
mahan
  • 12,366
  • 5
  • 48
  • 83