TextView文本未编辑

时间:2015-06-02 08:36:47

标签: objective-c iphone ios8 uitextview

我的UITextView上限制为140个字。当我输入140个单词时,它工作正常。现在我使用此文本移动到下一个控制器,然后使用此文本返回到上一个控制器。我将此文本设置为UITextView,但这不可编辑。如果我的长度小于140字,它工作正常。 这是我的代码

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)texst {
    [myScrollView setContentOffset:CGPointMake(0, 100)];

    if([texst isEqualToString:@"\n"]) {
        [textView resignFirstResponder];
        [myScrollView setContentOffset:CGPointMake(0, 0)];
        return NO;
    }

    return textView.text.length  < 140;
}

1 个答案:

答案 0 :(得分:1)

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    [myScrollView setContentOffset:CGPointMake(0, 100)];

    if([texst isEqualToString:@"\n"])
    {
        [textView resignFirstResponder];
        [myScrollView setContentOffset:CGPointMake(0, 0)];
        return NO;
    }
    if(range.length + range.location > textView.text.length)
        return NO;

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

只需复制并粘贴即可。我甚至不打算弄清楚它是如何工作的,但我从另一个stackoverflow问题中复制了它,我从那以后一直在使用它。显然它甚至适用于&#34;摇动撤消&#34;特征

顺便说一句,看起来您的最后一行代码是主要问题。如果文本长度为140,则该方法将返回false,并且您将无法编辑文本(即使您退格(它仍然是140并返回false))。祝你好运。