UITextField 只能输入(限制输入)数字和"."

真心好用,输入价格的话可以直接拿去用,如果需要提醒什么的就
“// [self alertView:@”亲,第一个数字不能为小数点”];”书写需要的提示信息;
//textField.text 输入之前的值 string 输入的字符

//先设置属性

@property (nonatomic, assign) BOOL isHaveDian;

//textField.text 输入之前的值 string 输入的字符
- (BOOL)textField:(UITextField )textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString )string

{

if ([textField.text rangeOfString:@”.”].location==NSNotFound) {

_isHaveDian = NO;

}

if ([string length]>0)

{

unichar single=[string characterAtIndex:0];//当前输入的字符

if ((single >=’0’ && single<=’9’) || single==’.’)//数据格式正确

{

//首字母不能为0和小数点

if([textField.text length]==0){

if(single == ‘.’){

// [self alertView:@”亲,第一个数字不能为小数点”];

[textField.text stringByReplacingCharactersInRange:range withString:@”“];

return NO;

}

if (single == ‘0’) {

// [self alertView:@”亲,第一个数字不能为0”];

[textField.text stringByReplacingCharactersInRange:range withString:@”“];

return NO;

}

}

if (single==’.’)

{

if(!_isHaveDian)//text中还没有小数点

{

_isHaveDian=YES;

return YES;

}else

{

// [self alertView:@”亲,您已经输入过小数点了”];

[textField.text stringByReplacingCharactersInRange:range withString:@”“];

return NO;

}

}

else

{

if (_isHaveDian)//存在小数点

{

//判断小数点的位数

NSRange ran=[textField.text rangeOfString:@”.”];

NSInteger tt = range.location-ran.location;

if (tt <= 2){

return YES;

}else{

// [self alertView:@”亲,您最多输入两位小数”];

return NO;

}

}

else

{

return YES;

}

}

}else{//输入的数据格式不正确

// [self alertView:@”亲,您输入的格式不正确”];

[textField.text stringByReplacingCharactersInRange:range withString:@”“];

return NO;

}

}

else

{

return YES;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值