Ограничить количество строк в UITextView - PullRequest
1 голос
/ 21 октября 2011

Я использую UITextView в своем приложении, я хочу, чтобы пользователь вводил максимум 5 строк текста, я провел несколько дней в Google, но все еще не повезло, может кто-нибудь, пожалуйста, помогите !!

PS: Не ограничивать количество символов, но количество «ЛИНИЙ»

Я пытался найти количество строк и использовать этот метод textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text, возвращать НЕТ, когда предел достигнут, но кнопка возврата на пробел не 't работать после достижения лимита.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 21 октября 2011

Если строки не переносятся автоматически, вы можете использовать это:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
        if([text isEqualToString:@"\n"]) {
            rows++;
        if(rows >= maxNumberOfLines){
            //Exit textview
             return NO;
            }
       }
      return YES;
}

Это должно работать, но это не лучший способ справиться с этим.

Вероятно, было бы лучше использовать размер строки и сравнить его с размером содержимого текстового представления, чтобы ограничить его.

0 голосов
/ 21 октября 2011

Вы можете попробовать посмотреть следующие UITextInput Protocol (которым соответствует UITextView) методы

- (NSInteger)characterOffsetOfPosition:(UITextPosition *)position withinRange:(UITextRange *)range

- (UITextRange *)characterRangeByExtendingPosition:(UITextPosition *)position inDirection:(UITextLayoutDirection)direction

- (CGRect)firstRectForRange:(UITextRange *)range

@property(nonatomic, readonly) UITextPosition *endOfDocument
...