限制UITextView中的行数

时间:2011-10-21 13:58:17

标签: iphone uitextview limit lines

我在我的应用程序中使用UITextView,我希望用户输入最多5行文本,我已经在谷歌上花了几天但仍然没有运气,可以请一些人帮助!!

PS:不限制字符数,但限制“LINES”数量

我已尝试查找行数并使用此方法textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text,当达到限制时返回NO但在达到限制后返回空格按钮不起作用。

谢谢!

2 个答案:

答案 0 :(得分:2)

如果线条没有自动包裹,您可以使用:

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

这应该有效,但这不是处理它的最佳方式。

最好使用字符串的大小并将其与textview的contentize进行比较以限制它。

答案 1 :(得分:0)

您可以尝试查看以下UITextInput ProtocolUITextView符合)方法

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

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

- (CGRect)firstRectForRange:(UITextRange *)range

@property(nonatomic, readonly) UITextPosition *endOfDocument