UITextViewにはデリゲートメソッドがあります。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;
UITextViewに文字が挿入されるたびに呼び出されます。このメソッドでは、カウンターUILabelのテキストの長さを次のように設定します
counterlabel.text = [NSString stringWithFormat:@"%i", textView.text.length];
長さが範囲内、つまり140以下の場合は、メソッドの最後でYESを返し、それ以外の場合はNOを返します。
更新: ..
140文字に制限します。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
return textView.text.length <= 140;
}
文字の選択とカウント時にテキストの削除を処理します。
- (void)textViewDidChange:(UITextView *)textView
{
count.text = [NSString stringWithFormat:@"%i", (140- textView.text.length)];
}