Iphone 在UITextfield中使用两个十进制格式设置整数格式
我向用户展示了一个显示数字键盘的字段,并且只希望他们能够输入十进制数字——应该只有一个。小数点后应至少有2位数字。小数点前至少应有一位数字。那么输入不能是0或0.00。假设用户输入号码123456,它被接受,然后123.56它也被接受,我该怎么做请帮助我 您可以为该要求创建正则表达式,如:-Iphone 在UITextfield中使用两个十进制格式设置整数格式,iphone,objective-c,uitextfield,Iphone,Objective C,Uitextfield,我向用户展示了一个显示数字键盘的字段,并且只希望他们能够输入十进制数字——应该只有一个。小数点后应至少有2位数字。小数点前至少应有一位数字。那么输入不能是0或0.00。假设用户输入号码123456,它被接受,然后123.56它也被接受,我该怎么做请帮助我 您可以为该要求创建正则表达式,如:- NSString *numberRegEx = @"[0-9]+[.]{0,1}+[0-9]{0,2}"; NSPredicate *numberTest = [NSPredicate predicateW
NSString *numberRegEx = @"[0-9]+[.]{0,1}+[0-9]{0,2}";
NSPredicate *numberTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", numberRegEx];
//Valid email address
if ([numberTest evaluateWithObject:textField.text] == YES)
{
NSLog(@"correct value");
}
else
{
NSLog(@"incorrect value");
}
您可以为此要求创建正则表达式,如:-
NSString *numberRegEx = @"[0-9]+[.]{0,1}+[0-9]{0,2}";
NSPredicate *numberTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", numberRegEx];
//Valid email address
if ([numberTest evaluateWithObject:textField.text] == YES)
{
NSLog(@"correct value");
}
else
{
NSLog(@"incorrect value");
}
首先,为文本字段的uicontrol事件编辑更改添加目标:
[textField addTarget:self action:@selector(onEdit:) forControlEvents:UIControlEventEditingChanged];
将布尔属性添加到类:
@property(nonatomic, assign) BOOL formatting;
然后创建一个onEdit:方法,如下所示:
-(void)onEdit:(UITextField*)field {
//if you have more than one text field you can check for the one you need to format
if(!self.formatting) {
NSString* formattedText = ...//get the formatted text according to your rules
self.formatting = YES;//infinite loop prevention
field.text = formattedText;
self.formatting = NO;
}
}
首先,为文本字段的uicontrol事件编辑更改添加目标:
[textField addTarget:self action:@selector(onEdit:) forControlEvents:UIControlEventEditingChanged];
将布尔属性添加到类:
@property(nonatomic, assign) BOOL formatting;
然后创建一个onEdit:方法,如下所示:
-(void)onEdit:(UITextField*)field {
//if you have more than one text field you can check for the one you need to format
if(!self.formatting) {
NSString* formattedText = ...//get the formatted text according to your rules
self.formatting = YES;//infinite loop prevention
field.text = formattedText;
self.formatting = NO;
}
}
您可以在
-(BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)string
方法中应用所有条件。此处,textField.text
将是用户输入的最新文本。您可以解析它,并查看是否有任何条件未得到满足。在这种情况下返回NO
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if(allConditionsMet)
return YES;
return NO;
}
嗯,
Akshay您可以在
-(BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)string
方法中施加所有条件。此处,textField.text
将是用户输入的最新文本。您可以解析它,并查看是否有任何条件未得到满足。在这种情况下返回NO
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if(allConditionsMet)
return YES;
return NO;
}
嗯,
阿克什