我想限制我的iPad应用程序的用户在pdf上输出时最多输入20行.用户在UITextView中输入文本(如下所示),然后将其转换为pdf文档.
我意识到我将不得不做一些计算,具体取决于输入时输入的文本.有什么方法可以帮助我吗? textFieldDidEndEditing只允许我在输入后进行检查.
另外,因为这会更简单,有没有办法限制UITextField的行数?
解决方法
您接近textFieldDidEndEditing委托方法.
更好的方法是响应textView:shouldChangeTextInRange:replacementText:delegate方法,然后查看即将发生的更改是否会导致允许更多行.
这是一个如何做到这一点的例子:
- (BOOL) textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(Nsstring *)text { static const NSUInteger MAX_NUMBER_OF_LInes_ALLOWED = 3; NSMutableString *t = [NSMutableString stringWithString: self.textView.text]; [t replaceCharactersInRange: range withString: text]; NSUInteger numberOfLines = 0; for (NSUInteger i = 0; i < t.length; i++) { if ([[NSCharacterSet newlineCharacterSet] characterIsMember: [t characteratIndex: i]]) { numberOfLines++; } } return (numberOfLines < MAX_NUMBER_OF_LInes_ALLOWED); }
我在https://github.com/st3fan/StackOverflow/tree/master/TextViewWithLineLimit上在线提供了一个完整的示例..在iOS 7.0.2上测试过.请享用!
原文地址:https://www.jb51.cc/iOS/332896.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。