当用户输入 29 个字符时,将 UITextView 插入符号移动到新行?

Posted

技术标签:

【中文标题】当用户输入 29 个字符时,将 UITextView 插入符号移动到新行?【英文标题】:Move UITextView caret to new line when user enter 29 character? 【发布时间】:2015-10-14 07:42:52 【问题描述】:

我只想要 UITextView 中的 3 行。每行最多29个字符

我做的是

 static const NSUInteger MAX_NUMBER_OF_LINES_ALLOWED = 3;

        NSMutableString *t = [NSMutableString stringWithString: self.addressTextView.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);

在下面的委托方法中

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

请告诉我如何将每行的长度限制为最多 29 个字符。

也就是说,如果用户在第一行输入 29 个字符,然后将他带到换行符。

提前致谢。

【问题讨论】:

看到这个链接可能对你有帮助***.com/questions/27475670/… 【参考方案1】:

如果我没听错的话。您需要在 shouldChangeTextInRange: 方法中实现接下来的几行。

if (range. location%29==0) 
//add new line

希望对你有帮助!

【讨论】:

以上是关于当用户输入 29 个字符时,将 UITextView 插入符号移动到新行?的主要内容,如果未能解决你的问题,请参考以下文章

TextField 接受有限的字符 SwiftUi

将字符从输入转换为字符串

事件类型--键盘与文本事件

换行符是不是保存在标准输入中?

当输入 XML 和转换 XSL 是字符串时,如何使用 XslCompiledTransform。如何将转换结果作为字符串获取?

苹果机原生键盘输入的问题