-(UITextField*)createField:(NSString*)placeholder andTag:(int)tag andFont:(double)font{

    UITextField * field =[[UITextField alloc]init];
field.frame = CGRectMake(, , Main_Width-, );
field.delegate = self;
field.userInteractionEnabled = YES;
field.textAlignment = NSTextAlignmentLeft;
field.keyboardType = UIKeyboardTypeDefault;
// field.returnKeyType = UIReturnKeySend;
field.tag = tag;
field.placeholder =placeholder;
// field.text = placeholder;
field.textColor = littleBlackColor;
[field setFont:[UIFont fontWithName:@"STHeitiSC" size:font]];
[field addTarget:self action:@selector(textFieldWithText:) forControlEvents:UIControlEventEditingChanged];
return field;
}
-(void)textFieldWithText:(UITextField *)textField{

    UITextField * field = (UITextField*)textField;
switch (textField.tag) {
case ://发车单位/收车单位
if ([self textField:field shouldChangeCharactersInRange:NSMakeRange(, ) replacementString:@""]) {
[dic setObject:field.text forKey:@"unitname"]; //送达单位、收车单位
}
break;
case : //联系人
if ([self textField:field shouldChangeCharactersInRange:NSMakeRange(, ) replacementString:@""]) {
[dic setObject:field.text forKey:@"contact"];
}
break;
case ://联系电话
if ([self textField:field shouldChangeCharactersInRange:NSMakeRange(, ) replacementString:@""]) {
[dic setObject:field.text forKey:@"phone"];
}
break;
case ://详细地址
if ([self textField:field shouldChangeCharactersInRange:NSMakeRange(, ) replacementString:@""]) {
[dic setObject:field.text forKey:@"address"];
}
break;
default:
break;
}
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
{
//string就是此时输入的那个字符textField就是此时正在输入的那个输入框返回YES就是可以改变输入框的值NO相反
if ([string isEqualToString:@"\n"]) //按会车可以改变
{
return YES;
}
NSString * toBeString = [textField.text stringByReplacingCharactersInRange:range withString:string]; //得到输入框的内容
switch (textField.tag) {
case ://发车单位/收车单位
if ([toBeString length] > ) {
textField.text = [toBeString substringToIndex:];
[self createUIAlertController:@"单位输入不能超过20个字符"];
return NO;
}
break;
case : //联系人
if ([toBeString length] > ) {
textField.text = [toBeString substringToIndex:];
[self createUIAlertController:@"联系人输入不能超过10个字符"];
return NO;
}
break;
case ://联系电话
if ([toBeString length] > ) {
textField.text = [toBeString substringToIndex:];
[self createUIAlertController:@"联系电话输入不能超过11个字符"];
return NO;
}
break;
case ://详细地址
if ([toBeString length] > ) {
textField.text = [toBeString substringToIndex:];
[self createUIAlertController:@"详细地址输入不能超过30个字符"];
return NO;
}
break;
default:
break;
} return YES;
}

uitextfield输入字符限制的更多相关文章

  1. iOS 限制UITextField输入字符

    开篇 之前做过一个即时通信的项目,需要限制输入框文本的字符个数,当时从网络上搜寻了几个方法,解决了需求,但是网络上的解决办法不是很全面:今天又遇到一个限制搜索框UISearchBar输入字符个数的问题 ...

  2. 限制UITextField输入内容的长度

    一.前言 今天做手机号输入限制长度,例如我的textfield只能输入11位,如果再多输入的话就不再textfield中显示,只显示11位的手机号. 如果用ReactiveCocoa的话,这个很好解决 ...

  3. UITextView 和 UITextField限制字符数和表情符号

    UITextField限制字符数 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)r ...

  4. EditText限制输入字符类型的几种方式

    最近的项目上需要限制EditText输入字符的类型,就把可以实现这个功能的方法整理了一下: 1.第一种方式是通过EditText的inputType来实现,可以通过xml或者Java文件来设置.假如我 ...

  5. BufferedReader,缓冲输入字符流

    1. /** * 输入字符流: * --------|Reader 所有输入字符流的基类.抽象类 * -----------|FileReader 读取文件字符串的输入字符流. * --------- ...

  6. 终端I/O之特殊输入字符

    POSIX.1定义了11个在输入时作特殊处理的字符.实现定义了另外一些特殊字符.表18-6摘要列出了这些特殊字符. 表18-6 终端特殊输入字符 在POSIX.1的11个特殊字符中,可将其中9个更改为 ...

  7. textarea中限制输入字符长度

    要在textarea中限制输入字符的长度,比如在twitter中要限制字符为140个,可实现的方法有: 1. <textarea name="A" cols="45 ...

  8. Android EditText的输入监听,输入字符的动态获取

    http://itindex.net/detail/38974-android-edittext-%E7%9B%91%E5%90%AC 有时候我们可能会用到时时的监听EditText输入字符的时时监听 ...

  9. while死循环问题-输入字符就会死循环

    问题: 是否会遇到这样的问题,在while循环中 sanf("%d",&a);如果输入的不是数字,是字符就会进入死循环. 解决方案:都是缓冲区惹的祸,输入字符后,字符会一直 ...

随机推荐

  1. WPF常用方法,事件驱动和控件遍历

    //初始化数据,默认选中第一项,事件驱动 RadioButton btn = FuncClass.GetChildObject<RadioButton>(this.stackPanel1, ...

  2. Xamarin.Android开发实践(十六)

    Xamarin.Android之Fragment Walkthrough 利用Fragment设计能够兼容不同屏幕的应用 这里我们先围观下最后的成果图,给读者打打气: 普通手机上显示的结果: 在平板上 ...

  3. mac 下修改Hosts文件

    最近Google网站老是打不开,具体原因大家都明白,不过修改Hosts文件后,就能访问了,也算不上原创,网上一搜就能找到,自己操作记录下,希望有刚接触Mac 系统的童鞋有帮助. 第一步:打开Finde ...

  4. Java Hour 30 Weather ( 3 )

    有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. Hour 30 上回终点 Model 这里有一些java bean 的 风格约 ...

  5. Codeforces Gym 100203I I - I WIN 网络流最大流

    I - I WINTime Limit: 2 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.acti ...

  6. loj 1251(2-sat + 输出一组可行解)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26961 思路:u表示留下,~u表示离开,同理v,对于+u,-v,我 ...

  7. android webview与 java与javascript的交互

    webView.getSettings().setJavaScriptEnabled(true);//打开就可以用js的功能   webView.getSettings().setJavaScript ...

  8. vi-11

    vi编辑器linux命令大全 作者:xiaoru  出处:本站整理  发布时间:2013-04-29 13:20:23 -     vi就是linux命令行下的最著名的编辑器之一,Vim常被称作“程序 ...

  9. Linux下压缩与解压命令tar

    Linux下常见压缩文件的扩展名 *.gz:gzip压缩的: *.bz2:bzip2压缩的: *.tar:tar程序打包但没有压缩的: *.tar.gz:打包后并经过gzip压缩的: *.tar.bz ...

  10. QUnit使用笔记-1判断方法

    QUnit是一个前端测试工具. 判断效果: html基本结构: <h1 id="qunit-header">QUnit</h1> <h2 id=&qu ...