在有限的文本字段长度上剪切粘贴的文本
Posted
技术标签:
【中文标题】在有限的文本字段长度上剪切粘贴的文本【英文标题】:Cut pasted text on limited textField length 【发布时间】:2018-06-13 22:34:06 【问题描述】:我的代码如下:
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
if(range.length + range.location > textView.text.length)
return NO;
NSUInteger newLength = [textView.text length] + [text length] - range.length;
return newLength <= 80;
在我的 textField 中限制文本编辑最多 80 个字符。
我想要一种在该 textField 中粘贴文本的方法,但不是拒绝粘贴,而是剪切它以填充 80 个字符。
我该怎么做?
【问题讨论】:
【参考方案1】:创建新字符串,截断为 80,并更新文本视图。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
NSString *newText = [textView.text stringByReplacingCharactersInRange:range withString: text];
if (newText.length > 80)
newText = [newText substringToIndex: 80];
textView.text = newText;
return NO;
else
return YES;
【讨论】:
如果textView已经有内容怎么办?或者如果用户只替换了其中的一部分? 这段代码处理了这个问题。我的答案中的第一行采用当前值,根据当前选择和输入(键入、粘贴或删除)文本进行替换,然后将更新后的文本截断为前 80 个字符。 文本已更新但光标位置不正确(在替换文本之前)以上是关于在有限的文本字段长度上剪切粘贴的文本的主要内容,如果未能解决你的问题,请参考以下文章