UITextView输入文字长度限制
来源:互联网 发布:手机淘宝怎么投诉买家 编辑:程序博客网 时间:2024/05/19 18:11
参考: http://blog.csdn.net/skyharute/article/details/51404357#comments
[[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(DLGTextChange)name:UITextViewTextDidChangeNotificationobject:nil];
self.myLabel=[[UILabelalloc]init];
self.myLabel.font=[UIFontsystemFontOfSize:12];
self.myLabel.textColor=[UIColorblackColor];
[self.viewaddSubview:self.myLabel];
self.myLabel.attributedText=[selfhandleColorStr:@"您还可以输入140个字"];
[self.myLabelmas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(textview).offset(-6);
make.bottom.equalTo(textview).offset(-6);
}];
-(void)DLGTextChange{
staticconst NSInteger Max_Num_TextView = 140;
self.isContentTextViewEnable =true;
//获取当前键盘类型
UITextInputMode *mode = (UITextInputMode *)[UITextInputModeactiveInputModes][0];
//获取当前键盘语言
NSString *lang = mode.primaryLanguage;
//如果语言是汉语(拼音)
if ([langisEqualToString:@"zh-Hans"])
{
//取到高亮部分范围
UITextRange *selectedRange = [textviewmarkedTextRange];
//取到高亮部分
UITextPosition *position = [textviewpositionFromPosition:selectedRange.startoffset:0];
//如果取不到高亮部分,代表没有拼音
if (!position){
//当期超过最大限制时
if (textview.text.length > Max_Num_TextView) {
//对超出部分进行裁剪
textview.text = [textview.textsubstringToIndex:Max_Num_TextView];
//同时对可继续书写属性设为否,shouldChangeTextInRange方法会调用
self.isContentTextViewEnable =NO;
UIWindow *window = [[[UIApplicationsharedApplication] windows] lastObject];
MBProgressHUD *hud = [MBProgressHUDshowHUDAddedTo:window animated:YES];
hud.mode =MBProgressHUDModeText;
hud.labelText =@"不能超过140个字";
hud.margin = 10.f;
hud.yOffset = 150.f;
hud.removeFromSuperViewOnHide =YES;
[hud hide:YESafterDelay:2];
//同时将下方提示label设置为0
self.myLabel.attributedText = [self handleColorStr:[NSStringstringWithFormat:@"您还可以输入0个字"]];
}
//如果没超出,那么就计算剩余字数
self.myLabel.attributedText = [selfhandleColorStr:[NSStringstringWithFormat:@"您还可以输入%d个字",(int)(Max_Num_TextView - textview.text.length)]];
}else{
//表示还有高亮部分,暂不处理
}
}else{
//如果语言不是汉语,直接计算
if (textview.text.length > Max_Num_TextView) {
textview.text = [textview.textsubstringToIndex:Max_Num_TextView];
self.isContentTextViewEnable =NO;
self.myLabel.attributedText = [selfhandleColorStr:[NSStringstringWithFormat:@"您还可以输入0个字"]];
}
self.myLabel.attributedText = [selfhandleColorStr:[NSStringstringWithFormat:@"您还可以输入%d个字",(int)(Max_Num_TextView-textview.text.length)]];
}
}
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
if ([textisEqualToString:@""]) {
returnYES;
}else{
returnself.isContentTextViewEnable;
}
}
//对字的位置颜色进行处理
-(NSMutableAttributedString*)handleColorStr:(NSString*)str{
NSMutableAttributedString * attStr = [[NSMutableAttributedStringalloc]initWithString:str];
if (attStr.length == 11) {
[attStr addAttribute:NSForegroundColorAttributeNamevalue:[UIColorgreenColor] range:NSMakeRange(6, 3)];
}elseif(attStr.length == 10){
[attStr addAttribute:NSForegroundColorAttributeNamevalue:[UIColorgreenColor] range:NSMakeRange(6, 2)];
}else{
[attStr addAttribute:NSForegroundColorAttributeNamevalue:[UIColorgreenColor] range:NSMakeRange(6, 1)];
}
return attStr;
}
- UITextView输入文字长度限制
- UITextView限制输入长度
- UITextView 限制输入文本长度
- UITextField限制输入的长度,UITextView限制输入的长度
- 如何限制UITextView上文字的长度
- UITextField ,UITextView 输入长度的限制
- js限制输入文字长度
- UITextView限制文本长度
- UITextField, UITextView长度限制
- UITextView限制最大输入长度(UITextField相同)
- UITextView限制最大输入长度(UITextField相同)
- 详释(常见UITextView输入之字数限制)之一固定长度
- UITextView限制最大输入长度(UITextField相同)
- 限制文字框输入长度的JS
- JS 限制输入框的文字长度
- 如何限制UITextField 输入文字的长度?
- 限制输入文字长度最好的方法
- 限制UITextField 输入文字的长度
- HDU2202
- mysql主从
- 洛谷[P1036]营救 并查集
- android jni 编程 二
- 调试
- UITextView输入文字长度限制
- JS全局变量和局部变量
- Git 与 Gerrit 应用1
- 高效解析json例子,Jackson框架
- Java虚拟机运行时数据区域
- 57.should merge Js
- Poj 1195 Mobile phones
- iOS 第三方SSZipArchive导入问题
- 打印CGxxx等结构体