您的位置:首页 > 移动开发 > IOS开发

iOS - TextField的一些输入限制

2016-07-02 16:10 351 查看

iOS - TextField的一些输入限制

TextField限制输入类型和字节数

#import "ViewController.h"

#define NUMBERS @"0123456789\n" // 定义宏
#define kAlphaNum @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"

@interface ViewController ()<UITextFieldDelegate>

@property (weak, nonatomic) IBOutlet UITextField *testField; // stroyboard拖一个textfield

@end


- (void)viewDidLoad {
[super viewDidLoad];
// 设置代理
self.testField.delegate = self;
}


//string就是此时输入的那个字符textField就是此时正在输入的那个输入框, 返回YES可以改变输入框的值, NO不可以改变输入框的值
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSCharacterSet *cs;
//判断是否时我们想要限定的那个输入框
if(textField == self.testField)
{
// 改变宏,判断输入的类型
cs = [[NSCharacterSet characterSetWithCharactersInString:NUMBERS] invertedSet];
//按cs分离出数组,数组按@""分离出字符串
NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
BOOL basicTest = [string isEqualToString:filtered];
if(!basicTest)// 如果输入的不是数字
{
NSLog(@"error");
return NO;
}
}

//得到输入框的内容
NSString * toBeString = [textField.text stringByReplacingCharactersInRange:range withString:string];
if ([toBeString length] > 5) { //如果输入框内容大于5则禁止输入
NSLog(@"超过最大数量");
return NO;
}

//其他的类型不需要检测,直接写入
return YES;
}


参考文档:

1.http://zhidao.baidu.com/link?url=Xjx4yHKOqsY1mLsyZV7mqRmTL7wlgMOz4Wi4z9yUkOKd6dM6IO_4hApuReJ2hvvk–GiMm6RK-iJf2Nx083AbE-RyGXy5yIMGpvPTwL_fYC

2.http://outofmemory.cn/code-snippet/7281/ios-textField-limited-zhineng-out-yiding-length-charaeter

3.http://zhidao.baidu.com/link?url=xM1zXHpMG-ijQ32-z8l8GEJU663J9QYE2yyML1GwiEDZy8RtkXj6z_96xxBZIMRSNxR6VlOgtOmYXfimTfrfJpX-HNAhA8Bie5zxUEoHKby
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息