我在每个地方都搜索过这个问题,但我没有得到我的结果。 我已将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];
}
}
答案 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;