博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UITextField限制输入长度
阅读量:6048 次
发布时间:2019-06-20

本文共 1473 字,大约阅读时间需要 4 分钟。

首先,汉字的输入时的联想词在输入到TextFiled时,并不会走

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;

这导致了在这里进行长度限制的代码都会失效.此路不通.

 

因此我们可以用注册UITextFieldTextDidChangeNotification通知来监测TextField的文字的变化:

1、注册通知

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(textFiledEditChanged:)          name:@"UITextFieldTextDidChangeNotification" object:myTextField];

 

2、实现 textFiledEditChanged: 方法

- (void) textFiledEditChanged:(NSNotification *)notification{         UITextField *textField = (UITextField *)obj.object;    NSString *toBeString = textField.text;     //获取高亮部分    UITextRange *selectedRange = [textField markedTextRange];    UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];     // 没有高亮选择的字,则对已输入的文字进行字数统计和限制    if (!position || !selectedRange) {        if (toBeString.length > MAX_STARWORDS_LENGTH) {            NSRange rangeIndex = [toBeString rangeOfComposedCharacterSequenceAtIndex:MAX_STARWORDS_LENGTH];            if (rangeIndex.length == 1) {                textField.text = [toBeString substringToIndex:MAX_STARWORDS_LENGTH];            } else {                NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, MAX_STARWORDS_LENGTH)];                textField.text = [toBeString substringWithRange:rangeRange];            }        }    }}

至此,可以完美控制输入字符长度

转载于:https://www.cnblogs.com/MasterPeng/p/9692721.html

你可能感兴趣的文章
小孩的linux
查看>>
JavaScript History对象
查看>>
在 Windows 下安装 Oracle 11g XE (Express Edition)
查看>>
ListView优化
查看>>
【原创】 PostgreSQL 实现MySQL 的auto_increment 字段
查看>>
vs2015添加vc助手
查看>>
检测点1.1
查看>>
android--------阿里 AndFix 热修复
查看>>
control.add()
查看>>
Sublime text3中配置Github
查看>>
Asp.net,C# 加密解密字符串
查看>>
网页视频播放器插件源码
查看>>
2019-4-23 plan
查看>>
[编解码] 关于base64编码的原理及实现
查看>>
WinDbg配置和使用基础
查看>>
转:Object-Runtime的基本数据类型
查看>>
JMJS系统总结系列----Jquery分页扩展库(五)
查看>>
Excel技巧之——英文大小写转换(转)
查看>>
Google 翻译的妙用
查看>>
常用的集合
查看>>