首页 > 解决方案 > 在有限的文本字段长度上剪切粘贴的文本

问题描述

我的代码如下:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if(range.length + range.location > textView.text.length)
    {
       return NO;
    }
    NSUInteger newLength = [textView.text length] + [text length] - range.length;
    return newLength <= 80;
}

在我的 textField 中将文本版本限制为最多 80 个字符。

我想要一种在该 textField 中粘贴文本的方法,但不要拒绝粘贴,只需剪切它以填充 80 个字符。

我怎样才能做到这一点?

标签: iosobjective-ccocoa-touch

解决方案


创建新字符串,截断为 80,然后更新文本视图。

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    NSString *newText = [textView.text stringByReplacingCharactersInRange:range withString: text];
    if (newText.length > 80) {
        newText = [newText substringToIndex: 80];
        textView.text = newText;

        return NO;
    } else {
        return YES;
    }
}

推荐阅读