아미(아름다운미소)

UITextField 또는 UITextView 문자 수를 제한하는 방법 본문

랭귀지/SWIFT

UITextField 또는 UITextView 문자 수를 제한하는 방법

유키공 2018. 5. 20. 09:30

UITextField또는 UITextView에 사용자가 특정 글자 수보다 더를 입력되는것을 방지하려면 shouldChangeCharactersIn(텍스트 필드) 또는 shouldChangeTextIn(텍스트 뷰) 를 사용하시면 됩니다.

UITextField (한 줄)로 작업하는지 또는 UITextView (여러 줄)로 작업하는지에 따라서 두 가지 방법 중 하나를 사용 하시면 됩니다.


textField

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    let currentText = textField.text ?? ""
    guard let stringRange = Range(range, in: currentText) else { return false }

    let updatedText = currentText.replacingCharacters(in: stringRange, with: string)

    return updatedText.count <= 16
}

- textView

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
    let currentText = textView.text ?? ""
    guard let stringRange = Range(range, in: currentText) else { return false }

    let changedText = currentText.replacingCharacters(in: stringRange, with: text)

    return changedText.count <= 16
}


Comments