Deep_Dev

 

 

📚 TextField 다중라인 만들기

 

 

 

프로젝트에서 사용자 입력을 받는 Text Field를 구현하고 있었는데, 디자인이 조금씩 바뀌면서 텍스트 필드에 입력한 텍스트들이 여러 줄로 나와야했습니다.

 

근데 저는 TextField와 TextEditor의 차이점이, TextField는 한 줄 그리고 TextEditor는 여러 줄로 명확한줄 알았습니다.

그러니까, 여러줄로 해야한다면 무조건 TextEditor를 사용해야하고 에디터에는 Placeholder가 없으므로 이것도 만들어줘야한다 ...

placeholder를 얹으려면 zstack을 쓰든, overlay하든 너무 변경하기 귀찮아서,, 슥 구글링을 해보았는데요.

 

TextField에서도 다중라인이 가능하다는 것...이었습니다.

 

iOS 16에서부터 되었던것이라고 하네요 . ( 저는 왜 이제 안건지 ? ) 

 

TextField에 axis 인수 를 넣어주면 됩니다 !

 

struct TextFieldView: View {

    @State var title = ""
    
    var body: some View {        
        TextField("제목", text: $title, axis: .vertical)
            .textFieldStyle(.roundedBorder)
            .padding()
    }
}

이렇게 초기화 인수 axis: .vertical로 지정을 해주면, 콘텐츠에 따라 확장되는 텍스트 필드가 생성되며,

충분한 공간이 있는 한 콘텐츠에 따라 텍스트 필드가 동적으로 커진다고 하네요 !

 

 

 

 

참고 레퍼런스

https://sarunw.com/posts/swiftui-multiline-textfield/

 

How to create multiline TextField in SwiftUI | Sarunw

In iOS 16, we can create a multiple text field with new initializers and a little help from the .lineLimit(_:) modifier.

sarunw.com