IOS textField 输入个数限制
来源:互联网 发布:nike安卓抢鞋软件 编辑:程序博客网 时间:2024/05/22 12:05
一.问题描述:当我们对textFiled输入的字数进行限制的时候比如 textField.text.length<10 ,对于这个限制当我们用第三方的键盘无论是搜狗还是百度都是没有问题的,但是当我们用IOS系统自带的键盘输入汉字的时候当输完9个汉字之后你再用拼音拼第十个汉字的时候就会发现这样一个问题:第十个汉字你只能用拼音拼出第一个拼音然后就无法继续拼写下去了。用一下方法可以解决这个问题。
在viewdidLoad 里面先加入通知
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(textFiledEditChanged:)
name:@"UITextFieldTextDidChangeNotification"object:self.aliasTextField];
-(void)textFiledEditChanged:(NSNotification *)obj{
NSInteger maxCount = 20;
UITextField *textField = (UITextField *)obj.object;
NSString *toBeString = textField.text;
// NSString *lang = [[UITextInputMode currentInputMode] primaryLanguage]; //键盘输入模式
NSString *lang = [textField.textInputModeprimaryLanguage];
if ([langisEqualToString:@"zh-Hans"]) {// 简体中文输入,包括简体拼音,健体五笔,简体手写
UITextRange *selectedRange = [textFieldmarkedTextRange];
//获取高亮部分
UITextPosition *position = [textField positionFromPosition:selectedRange.startoffset:0];
// 没有高亮选择的字,则对已输入的文字进行字数统计和限制
if (!position) {
if (toBeString.length > maxCount) {
textField.text = [toBeString substringToIndex:maxCount];
}
}
// 有高亮选择的字符串,则暂不对文字进行统计和限制
else{
}
}
// 中文输入法以外的直接对其统计限制即可,不考虑其他语种情况
else{
if (toBeString.length > maxCount) {
textField.text = [toBeString substringToIndex:maxCount];
}
}
}
二.问题描述:输入框内的文字都是需要提交到服务器的,有时候我们会遇到不接受表情符号的接口 这个时候如果输入框里面有表情符号我们就需要把表情过滤掉或者装换成其他一些符号或者字符串让后台可以接受。
+ (NSString *)disable_emoji:(NSString *)string
{
NSRegularExpression *regex = [NSRegularExpressionregularExpressionWithPattern:@"[^\\u0020-\\u007E\\u00A0-\\u00BE\\u2E80-\\uA4CF\\uF900-\\uFAFF\\uFE30-\\uFE4F\\uFF00-\\uFFEF\\u0080-\\u009F\\u2000-\\u201f\r\n]"options:NSRegularExpressionCaseInsensitiveerror:nil];
NSString *str = [regexstringByReplacingMatchesInString:stringoptions:0range:NSMakeRange(0, [stringlength]) withTemplate:@"[表情]"];
return str;
}
这个函数将所有的Emoji转换为字符串@"[表情]"
三. 相信做过IOS开发的都应该做过登录注册界面,一下是我对登录注册做的一些总结
1.第一不可少的就是点击屏幕空白处会收起键盘。可以再touchesBegin函数 或者 自己写个手势函数里面写上
[self.viewendEditing:YES];
2.输入框里面字符串的限制比如注册的时候输入的电话号码最好能做几个限制比如 输入的第一个字符必须是1不超过11位 在第三位与第四位之间留有空格 在第七位与第八位之间留有空 格,密码输入框一定设置成保密属性。
3.还有一些其他的美化界面的设置,比如正在输入的输入框边框高亮,或者不同的输入框对应不同类型的键盘,等等。
4.做登录最重要的一点就是登录成功之后做用户数据的本地存储以及退出登录把用户数据清除干净。
个人觉得登录注册不难做但是需要处理的细节还是挺多的。一般如果是一个新应用都是首先弹出注册界面可以从注册界面跳进登录的界面,但是拥有一定用户量的app基本是是先看到登录界面注册界面可以由登录界面进入这样子的。
另外 一个app 像注册登录 这种最基本的界面 做好之后是没有必要大改的。
- IOS textField 输入个数限制
- ios textfield 输入限制
- iOS TextField电话号码输入限制
- 限制TextField的字符串输入个数
- iOS 自定义TextField字体颜色和显示位置,限制字体输入个数
- iOS--如何限制textField输入时小数点后需要的个数
- iOS 追踪限制textfield输入位数
- ios textfield限制中文输入长度
- iOS限制textfield输入两位小数
- iOS限制TextField可输入的长度
- iOS - TextField的一些输入限制
- iOS开发之textField限制输入字数
- iOS如何限制textField的输入格式
- iOS中textfield有效限制输入长度
- iOS textfield限制输入的最大长度
- iOS 限制TextField输入长度(标准)
- 知识片段---textfield限制字符输入个数(包括汉子)
- TextField限制输入字符
- C#WebBrowser控件使用教程与技巧收集
- 快速排序PHP实现
- get/post请求中文乱码问题
- 总结最近一段时间的生活
- JavaScript中的正则表达式
- IOS textField 输入个数限制
- 100多个基础常用JS函数和语法集合大全
- ubuntu14.04 下配置编译cocos2d-x3.10
- 远程桌面连接常见问题解决方案
- [PHP实例] PHP中COOKIES使用示例
- 求图像的周长(ZOJ1047)
- 两个 AutoLayout 的小建议
- CUDA 内存类型
- JS跳转页面的几种方法