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
}
}
}
}