使用ios中的textViewDidChange计算字符数

时间:2014-10-15 06:24:55

标签: ios

我在每个地方都搜索过这个问题,但我没有得到我的结果。 我已将textview设置为委托。 我想在标签"计数器"中显示计数。 谁能告诉我我的代码有什么问题?

- (void)textViewDidChange:(UITextView *)textView
{  
    NSString *substring = [NSString stringWithString:textView.text];
    //if message has text show label and update with number of characters using the NSString.length function
    if (substring.length > 0) {
           self.counter.hidden = NO;
        self.counter.text= [NSString stringWithFormat:@"%d characters", substring.length];   
    }
    //if message has no text hide label
    if (substring.length == 0) {
        self.counter.hidden = YES;
    self.counter.text= [NSString stringWithFormat:@"%d characters", substring.length];
    }
}

2 个答案:

答案 0 :(得分:0)

使用此委托方法

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    NSUInteger strLength = (textView.text.length - range.length) + text.length;
    return YES;
}

答案 1 :(得分:0)

您的代码只是隐藏了标签,但在第一个字符到达时从未显示过。

而不是:

if (substring.length == 0) {
    self.counter.hidden = YES;

...始终设置可见性:

self.counter.hidden = substring.length == 0;