랭귀지/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 }