Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

iOS 개발일지

UITextView의 글자수와 줄바꿈을 제한하자! (feat. UITextViewDelegate) 본문

iOS - 코드블럭 아카이브

UITextView의 글자수와 줄바꿈을 제한하자! (feat. UITextViewDelegate)

Lia's iOS 2023. 5. 18. 09:11
extension MyViewController: UITextViewDelegate {
    func textViewDidChange(_ textView: UITextView) {
        guard let text = textView.text else { return }
        
        // 글자수 제한
        let maxLength = 100
        if text.count > maxLength {
            textView.text = String(text.prefix(maxLength))
        }
        
        // 줄바꿈(들여쓰기) 제한
        let maxNumberOfLines = 4
        let lineBreakCharacter = "\n"
        let lines = text.components(separatedBy: lineBreakCharacter)
        var consecutiveLineBreakCount = 0 // 연속된 줄 바꿈 횟수

        for line in lines {
            if line.isEmpty { // 빈 줄이면 연속된 줄 바꿈으로 간주
                consecutiveLineBreakCount += 1
            } else {
                consecutiveLineBreakCount = 0
            }

            if consecutiveLineBreakCount > maxNumberOfLines {
                textView.text = String(text.dropLast()) // 마지막 입력 문자를 제거
                break
            }
        }
    }
}