Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在UITextfield中使用两个十进制格式设置整数格式_Iphone_Objective C_Uitextfield - Fatal编程技术网

Iphone 在UITextfield中使用两个十进制格式设置整数格式

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

我向用户展示了一个显示数字键盘的字段,并且只希望他们能够输入十进制数字——应该只有一个。小数点后应至少有2位数字。小数点前至少应有一位数字。那么输入不能是0或0.00。假设用户输入号码123456,它被接受,然后123.56它也被接受,我该怎么做请帮助我

您可以为该要求创建正则表达式,如:-

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;
}
嗯,

阿克什