ios11 [SwiftUI, UIKit] 편지 구현하기: textEditor, UITextView, UIViewRepresentable, NSLayoutManager 프로젝트를 진행하면서 편지 형식으로 텍스트를 입력하는 기능을 개발하게 되어, 편지지를 구현하고 그 과정을 블로그에 남기려고 합니다. 보통 편지의 구조를 생각할 때, 글을 적는 부분을 나타내기 위해 일정한 간격으로 밑줄을 그어 놓습니다. 하지만 SwiftUI에서 TextEditor로 멀티라인 텍스트를 입력할 수 있지만, 줄 사이에 구분선을 넣는 기능은 제공되지 않습니다. 이를 구현하기 위한 방법을 생각해봤습니다.편지의 한 줄마다 텍스트를 입력할 수 있는 TextField를 사용하고, 각 TextField 바로 아래에 밑줄을 두어 주어진 크기를 넘어가거나 개행문자 \n이 입력되면 다음 TextField로 포커스를 넘기는 방식여러 개의 밑줄을 그리고 TextEditor를 겹쳐서 줄 위에 글을 작성하는 것처럼 .. 2025. 2. 11. [Swiftui] Core Data를 사용하여 채팅창 구현하기: Create와 Read 이번 게시물에서는 채팅창을 만들어보면서 CRUD중 Create와 Read를 다루어보도록하겠습니다.CoreData를 사용해보기 위해 간단히 만든 프로젝트이기 때문에 서버를 사용하지 않아 사용자가 메시지를 올리는 기능만 구현했습니다.1. CoreData 프로젝트 생성 프로젝트를 생성할 때 Storage를 Core Data로 설정합니다. 제가 사용하는 Xcode 15.3 버전에서는 CoreData를 선택하면 CoreData의 사용 방법을 보여주는 기본 프로젝트가 생성됩니다. 기본 프로젝트는 우상단의 "+" 버튼을 누르면 현재 시간을 CoreData에 추가하고 Edit을 누르면 CoreData 저장되어 있는 데이터를 삭제할 수도 있는 간단한 프로젝트입니다.기본 프로젝트를 만들면 프로젝트 이름으로 모델.. 2024. 7. 8. [SwiftUI] TextEditor / placeholder, 외곽선, 정렬 Swiftui에서 TextField가 주어진 width 크기를 초과하면 자동으로 줄이 바뀌지 않고 horizontal로 스크롤되어 ui는 텍스트 크기와 상관 없이 한 줄로 유지됩니다.struct AddDiaryView: View { @State var text: String = "" var body: some View { VStack(content: { TextField( "aaaa", text: $text ) .lineLimit(12) .autocorrectionDisabled(true) }) }} 제가 필요한 것은 Textfield의 width 크기를 초과했을 때 vertical 방향으로 텍스트가 추가되는 것을 원하기 때문에.. 2024. 5. 12. [Xcode] Simulator 이전 버전 추가 오래된 기기를 사용하는 사용자들을 위해 프로젝트를 개발할 때 ios 최소 버전을 설정하는 것이 필요하다고 느꼈습니다. SwiftUI로 개발하기 때문에 ios최소 버전을 13으로 고려하고 있었고 ios 13이 지원하는 기종 중 가장 오래된 기기인 iphone 6s는 ios 15.xx 까지 업데이트를 지원하기 때문에 ios15 를 최소 버전으로 잡아 개발 환경을 구성하였습니다. 이번 게시물에서는 이전 ios 버전을 다운 받고 다운 받은 ios 버전을 탑재한 시뮬레이터를 추가해보도록 하겠습니다. 1. ios 이전버전 다운로드 우선 Xcode -> Settings -> Platforms 순서로 클릭하여 아래 화면에 접속하고 왼쪽 하단 '+' 버튼을 클릭합니다. 이후 추가할 OS를 클릭합니다 원하는 Simulat.. 2024. 4. 12. 이전 1 2 3 다음