一开始认为UITextView限制字数很简单,在delegate里处理一下shouldChangeTextInRange就行了:
//const NSInteger kMaxLength = 100;
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
return textView.text.length + text.length - range.length <= kMaxLength;
}
没想到在使用拼音输入法的联想功能时并不触发这个方法。只好在textViewDidChange里强行限制了:
- (void)textViewDidChange:(UITextView *)textView {
if(textView.text.length > kMaxLength) {
textView.text = [textView.text substringToIndex:kMaxLength];
}
}