当你百度出来一堆结果,100%的搜索结果都在告诉你,iOS实现这事儿不容易,可能遇到的问题如下:
- 输入法联想词可能会超字符长度限制
- 粘贴操作可能会超字符长度限制
- 达到了限制的时候,无法再编辑
看他们又是监听通知又是判断输入法的,真的有必要么?错误的方法被人复制了一千一万遍,可还是有人在用!
正确姿势如下:
1)在你的ViewController这样添加UITextViewDelegate
@interface ViewController : UIViewController <UITextViewDelegate>
每次用户键入键盘上的字符,在显示字符之前,下面的方法会被调用。这是个好用的方法,以测试用户键入的字符,或者禁止特定的字符。
textView:shouldChangeCharactersInRange:replacementString
2)然后编写以下代码。可以替换成你想要限制的字数。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
return textView.text.length + (text.length - range.length) <= 140;
}
Swift:
func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
return textView.text.characters.count + (text.characters.count - range.length) <= textViewLimit
}
来试试吧!中文输入法!粘贴!随便试!
帮到你了吗?喜欢的话就打赏一下吧!😏😏😏