2015-06-02 6 views
1

У меня есть ограничение на 140 слов на моем UITextView. Когда я набираю 140 слов, он работает нормально. Теперь я перехожу к следующему контроллеру с этим текстом, а затем обратно к предыдущему контроллеру с помощью этого текста. Я устанавливаю этот текст в свой UITextView, но это не редактируется. Если моя длина меньше 140 слов, она работает нормально. Это мой кодТекст TextView не редактируется

- (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

return textView.text.length <140; Вот твоя грязная штука – iAhmed

ответ

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, и я его использовал с тех пор. По-видимому, он даже работает с функцией «встряска для отмены».

Кстати, похоже, что ваша последняя строка кода является основной проблемой. Если длина текста равна 140, тогда метод вернет false, и вы не сможете редактировать текст (даже если вы используете backspace (он будет равен 140 и возвращает false)). В любом случае, удачи.

Смежные вопросы