我在我的应用程序中使用UITextView,我希望用户输入最多5行文本,我已经在谷歌上花了几天但仍然没有运气,可以请一些人帮助!!
PS:不限制字符数,但限制“LINES”数量
我已尝试查找行数并使用此方法textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
,当达到限制时返回NO但在达到限制后返回空格按钮不起作用。
谢谢!
答案 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 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