UITextField限制输入长度
2016-02-24 15:59
381 查看
因leader要求输入长度做限制,而且要求一个汉字算2个字符,其他的算1个字符,再加上一个Controller有多个UITextFiled,所以我这么写控制长度。(也许会有更好的方法)
.m文件
.m文件
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; UITextField *textF = [[UITextField alloc] initWithFrame:CGRectMake(10, 100, self.view.frame.size.width - 20, 30)]; textF.layer.borderWidth = 0.5; textF.layer.borderColor = [UIColor lightGrayColor].CGColor; textF.layer.cornerRadius = 5; textF.layer.masksToBounds = YES; [self.view addSubview:textF]; [textF addTarget:self action:@selector(textFieldChange:) forControlEvents:UIControlEventEditingChanged]; } - (void)textFieldChange:(UITextField*)textF{ if ([self calculateTextNumber:textF.text]>30) { float number = 0.0; NSString *str = [NSString string]; for (float index = 0.0; index < textF.text.length;index++ ) { NSString *character = [textF.text substringWithRange:NSMakeRange(index, 1)]; if ([character lengthOfBytesUsingEncoding:NSUTF8StringEncoding] == 3) { number += 2; } else { number += 1; } if (number > 30) {//30个字符 == 15个汉字 break; }else{ str = [str stringByAppendingString:character]; } } textF.text = str; } } /** * 计算字符 * * @param textA 需要计算的字符串 * * @return 返回字符数 */ -(CGFloat)calculateTextNumber:(NSString *) text { float number = 0.0; for (int index = 0; index < [text length]; index++) { NSString *character = [text substringWithRange:NSMakeRange(index, 1)]; if ([character lengthOfBytesUsingEncoding:NSUTF8StringEncoding] == 3) { number += 2; } else { number += 1; } } return number; }
相关文章推荐
- iOS 3D UI(3D翻转)
- 通过xib加载UITableViewCell的新方式
- 为Openstack创建实例(对fuel原生部分的修订)
- LeetCode -- Longest Increasing Subsequence(LIS)
- GUID 类型
- sdut 2428 Ubiquitous Religions(最小生成树)
- UIActivityViewController 系统社交化 共享
- dom4j解析xml报错:Nested exception: org.xml.sax.SAXParseException: White space is required between the processing instruction target and data.
- 使用easyui实现双击列表中某个值直接对其进行修改
- UIDynamic
- *** Assertion failure in -[UICollectionViewData validateLayoutInRect:]
- Android之MessageQueue、Looper、Handler与消息循环
- 1.String、Stringbuffer、Stringbuilder之间的区别。
- 0777前面的0原来是叫个suid和guid的东西
- 使用UGUI制作血条中Slider的value控制
- Android Stuido Ndk-Jni 开发(三):Jni基本语法
- 默认系统为UEFI启动的GPT分区的WIN7(8),如何安装VHD的UEFI WIN8(7)
- iOS UIScrollView不能响应touchBegin的解决方法
- Android Stuido Ndk-Jni 开发(二):Jni中打印log信息
- iOS UITextFiled设置样式为有下划线的那种