iOS系统UITextField研究
来源:互联网 发布:阿里巴巴外贸绑定域名 编辑:程序博客网 时间:2024/06/10 19:01
以前在项目上遇到客户需要限输入手机号的时候,限定只输入11位,当时客户催得很急,当时我也在外地,就随便找了方法,实现了具体功能,但没去具体研究,现在闲闲来就研究了下,话不多说,看问题。
每当UITextField的输入框内的值发生改变时,就会发出通知,
UITextFieldTextDidChangeNotification这个通知在一次输入结束的时候就会发出,因此可以注册观察者,如下代码:
[[NSNotificationCenter defaultCenter] addObserver:selfselector:@selector(putInTextFieldEditChanged:)name:@"UITextFieldTextDidChangeNotification"object:self.textField];
- (void)putInTextFieldEditChanged:(NSNotification *)obj
{
UITextField *textField = (UITextField *)obj.object;
NSString *toBeString = textField.text;
// 键盘输入模式
NSString *lang = [[UIApplicationsharedApplication]textInputMode].primaryLanguage;
if ([langisEqualToString:@"zh-Hans"]) {// 简体中文输入,包括简体五笔,简体手写
UITextRange *selectedRange = [textFieldmarkedTextRange];
//获取高亮部分
UITextPosition *position = [textField positionFromPosition:selectedRange.startoffset:0];
// 没有高亮选择的字,则对已输入的文字进行字数统计和限制
if (!position) {
if (toBeString.length >kMaxLength) { // kMaxLength这个宏定义可以根据自己需求设置
textField.text = [toBeString substringToIndex:kMaxLength];
}
}
// 有高亮选择的字符串,则暂不对文字进行统计和限制
else{
}
} // 中文输入法以外的直接对其统计限制即可,不考虑其他语种情况
else{ //对其他文本字符长度的限制
if (toBeString.length >kMaxLength) {
textField.text = [toBeString substringToIndex:kMaxLength];
}
}
}
注册的这个观察者也可以用来做其他事件处理
比如需要在输入的时候,输入框里的内容不但要显示输入框还要把输入的内容提示到一个弹出视图,当输入完成后弹出视图消失,这时就可以用UIView的动画进行配合使用,这里不好展示,读者如有这方面的需求,如不知如何实现,可以留言,我及时回复。
- iOS系统UITextField研究
- iOS UITextField系统警告问题~已解决
- IOS研究之多个UITextField的键盘处理
- iOS:关于关闭UITextfield键盘的一点研究
- iOS-UITextField
- IOS UITextField
- IOS UItextfield
- IOS-UITextField
- IOS-UITextField
- ios UITextField
- IOS-UITextField
- IOS UITextField
- iOS UITextField
- IOS UITextField
- 【iOS】uitextfield
- iOS UITextField
- iOS UITextField
- iOS UITextField
- windows下PHP7安装方法(ts版和nts版)
- Android异步加载图片中UI是否被阻塞的测试
- HDU5166Missing number
- Java微博爬虫的学习
- VS2008 ClickOnce发布Xenocode混淆的应用
- iOS系统UITextField研究
- Unity+NGUI性能优化方法总结
- linux和windows下的“回车符”和“换行符”
- 伴随ListView、RecyclerView、ScrollView滚动滑入滑出小图标--第三方开源--FloatingActionButton
- Discuz!X2.5 在FastCGI模式下php-cgi.exe进程数量增多的原因分析
- has a / is a 的区别
- TortoiseSVN版本控制软件的Windows安装与应用
- Android Native/Tombstone Crash Log 详细分析
- Android Studio更新错误 Connection failed. Please check your network connection and try again