限制uitextview中的字符数 - 我有5个文本视图相同的页面

时间:2014-12-19 14:46:57

标签: ios objective-c uitextview

我在同一页面上有五个textview。但只有一个textview可编辑。我想限制这个textview字符。 我使用- (void)textViewDidChange:(UITextView *)textView但它没有用。 我的UITextView引用名称是UserNote。 我试试- (void)textViewDidChange:(UITextView *)UserNote 不幸的是再没有用了。
请帮我。谢谢。 我改变了我的参考名称,现在是textView。

我的代码;

@property (retain, nonatomic) IBOutlet UITextView *textView;

- (void)textViewDidChange:(UITextView *)textView{
    NSUInteger length;
    length = [textView.text length];

    NSString * last = [NSString stringWithFormat:@"%lu", 160 - length];

    [_characterLabel setText:[NSString stringWithFormat:@"%@",last]];

    NSLog(@"%@" , last);
}

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
    // Prevent crashing undo bug – see note below.
    if(range.length + range.location > textView.text.length)
    {
        return NO;
    }

    NSUInteger newLength = [textView.text length] + [text length] - range.length;
    return (newLength > 160) ? NO : YES;
}

2 个答案:

答案 0 :(得分:0)

我解决了。我忘了设置UITextView Delegate。谢谢。

答案 1 :(得分:0)

这个表达很好

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{

NSString *string = [[textView text] stringByReplacingCharactersInRange:range withString:text];

if ([string length] > 60)
{
    return NO;
}
return YES;
}