ios - 在 UITextView 上设置最大行数条目

标签 ios ipad uitextfield

我想限制我的 iPad 应用程序的用户在输出 pdf 时最多输入 20 行。用户在 UITextView 中输入文本(如下所示),然后将其转换为 pdf 文档。

enter image description here

我意识到我必须根据他们输入的文本进行一些计算。有什么方法可以帮助我吗? textFieldDidEndEditing 只允许我在输入后进行检查。

此外,因为这会简单得多,是否有一种方法可以限制 UITextField 的行数?

最佳答案

您已接近 textFieldDidEndEditing 委托(delegate)方法。

不过,更好的方法是响应 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 上测试。享受吧!

关于ios - 在 UITextView 上设置最大行数条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19478679/

相关文章:

ios - iOS应用显示无效的二进制文件,缺少64位支持

ios - 如何为标准尺寸的 UIBarButtonItem 安装图像?

iphone - 对某些库使用 -all_load 但对某些库不使用

html - iPad/ios6 不渲染 png 背景图片

ios - 如何更改 UITextField 左 View 框架

ios - UITextField becomeFirstResponder 在动态单元格中不起作用

ios - 使用 NSNotificationCenter 时 ARC 无法正常工作

ios - 迁移到 Xcode 7/Swift 2.0 导致应用程序卡在启动屏幕上

javascript - 如何在 iPad Safari 浏览器的 HTML5 代码中使用 Javascript 以编程方式清除 session 和 cookie 值

ios - 如何为整个App设置UIKeyboard-Style?