UITextView - 最大换行符

时间:2015-11-13 22:13:45

标签: ios objective-c uitextview

当使用UITextView收集Objective-C中的用户输入时,如何限制用户尝试一次执行多个换行符?

所以,这没关系:

This is my text.

Here is some more text.

但这不会很好:

This is my text.




Here is some more text way down here.

1 个答案:

答案 0 :(得分:1)

在ViewController.h中添加UITextViewDelegate

YourViewController : UIViewController <UITextViewDelegate> 

并在ViewController.m中以这种方式实现方法textView:shouldChangeTextInRange:replacementText:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
    if ([text isEqualToString:@"\n"]) {
        NSMutableString *futureString = [textView.text mutableCopy];
        [futureString insertString:text atIndex:range.location];

        NSRange rangeOflineBreaks = [futureString rangeOfString:@"\n\n\n"];
        if (rangeOflineBreaks.location != NSNotFound) {
            return NO;
        }
    }
    return YES;
}

这将在每次用户想要向textView添加一些文本之前执行,并且如果它注意到他想要添加换行符并且在尝试添加它之后找到它,那么不会让他添加另一个换行符(这就是为什么futureString名称)三重换行模式。在这种情况下,他不会让用户添加另一个换行符。

尝试一下,它应该工作:)

PS:不要忘记在viewDidLoadyourTextView.delegate = self

中设置textView委托viewController