UITextField对中英文混合输入的长度限制
来源:互联网 发布:淘宝的地址在哪里修改 编辑:程序博客网 时间:2024/05/16 06:07
转载自:http://blog.sina.com.cn/s/blog_60f977e70101g4gj.html
主要步骤:
1. 添加监听
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFiledEditChanged:) name:@"UITextFieldTextDidChangeNotification" object:alertTextField];
2. 实现监听方法
a. 键盘可以输入,但是中文不能输入到控件中
- (void)textFiledEditChanged:(NSNotification *)obj{ UITextField *textField = (UITextField *)obj.object; NSString *toBeString = textField.text; NSString *lang = [textField.textInputMode primaryLanguage]; // 键盘输入模式 if ([lang isEqualToString:@"zh-Hans"]) { // 简体中文输入,包括简体拼音,健体五笔,简体手写 UITextRange *selectedRange = [textField markedTextRange]; //获取高亮部分 UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0]; // 没有高亮选择的字,则对已输入的文字进行字数统计和限制 if (!position) { if (toBeString.length > kNameMaxLength) { textField.text = [toBeString substringToIndex:kNameMaxLength]; } } // 有高亮选择的字符串,则暂不对文字进行统计和限制 } // 中文输入法以外的直接对其统计限制即可,不考虑其他语种情况 else { if (toBeString.length > kNameMaxLength) { textField.text = [toBeString substringToIndex:kNameMaxLength]; } }}
b. 键盘禁止输入
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSLog(@"%d-%d", textField.text.length, (string.length - range.length)); return textField.text.length + (string.length - range.length) <= kNameMaxLength;}- (void)textFiledEditChanged:(NSNotification *)notification { UITextField *textField = notification.object; if (textField.markedTextRange == nil && textField.text.length > kNameMaxLength) { [textField setText:[textField.text substringToIndex:kNameMaxLength]]; }}
3. 移除监听器:
[[NSNotificationCenter defaultCenter]removeObserver:self name:@"UITextFieldTextDidChangeNotification" object:textField];
0 0
- UITextField对中英文混合输入的长度限制
- UITextView & UITextField 实现中英文混合输入的限制
- iOS UITextField输入限制(中英文混合
- 限制UITextField的输入长度
- UITextField中文输入法输入时对字符长度的限制
- 限制UITextField和UITextView的中英文输入长度(中文占两个字符)
- UITextField限制输入的长度,UITextView限制输入的长度
- UITextField限制输入长度
- 限制 UITextField 输入长度
- UITextField 限制输入长度
- UITextField长度输入限制
- UITextField限制输入长度
- 限制UITextField输入长度
- UITextField长度输入限制
- UITextField 限制输入长度
- 限制UITextField输入长度
- 解决控件中中英文混合输入长度限制问题
- 限制UITextField输入长度的方法
- uboot移植与源码分析总结-Nand驱动
- opencv----计算互功率谱
- C/C++数组名与指针区别深入探索
- Android实现网络多线程断点续传下载
- leetcode题目解答--Max Points on a Line
- UITextField对中英文混合输入的长度限制
- .NET 方法概述
- 有用博客 2014/04/23
- Exemplar-SVMs for Object Detection and Beyond--Overview(一)
- 如何隐藏IE地址栏
- Win32 GDI基础(笔记)
- 局部加权回归
- Debug与release浅析 以及release调试
- javaScript 面向对象-继承(三)