/**spa
* textField的代理方法,監聽textField的文字改變代理
* textField.text是當前輸入字符以前的textField中的textstring
*io
* @param textField textFieldclass
* @param range 當前光標的位置方法
* @param string 當前輸入的字符co
*字符
* @return 是否容許改變return
*/location
#pragma mark - textField的代理方法,監聽textField的文字改變
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
/*
* 不能輸入.0-9之外的字符。
* 設置輸入框輸入的內容格式
* 只能有一個小數點
* 小數點後最多能輸入兩位
* 若是第一位是.則前面加上0.
* 若是第一位是0則後面必須輸入點,不然不能輸入。
*/
BOOL isHaveDian;
//第1位必須是.
if (string.length > 0) {
if([textField.text length]==0){
unichar single = [string characterAtIndex:0];
if (string.length > 0) {
if (!(single >= '0' && single <= '9') ){
return NO;
}
}
}
}
//第二位必須是.
if (string.length > 0) {
if([textField.text length]==1){
NSString *str1 = [string substringToIndex:1];
if (string.length > 0) {
if (![str1 isEqual:@"."]){
return NO;
}
}
}
}
// 判斷是否有小數點
if ([textField.text containsString:@"."]) {
isHaveDian = YES;
}else{
isHaveDian = NO;
}
//當前輸入的字符
if (string.length > 0) {
//當前輸入的字符
unichar single = [string characterAtIndex:0];
// 不能輸入.0-9之外的字符
if (!((single >= '0' && single <= '9') || single == '.')){
return NO;
}
// 只能有一個小數點
if (isHaveDian && single == '.') {
return NO;
}
//判斷小數點的位數
NSRange ran=[textField.text rangeOfString:@"."];
NSInteger tt=range.location-ran.location;
if (tt <= 3){
return YES;
}else{
return NO;
}
}
return YES;
}