如何在iOS中设置文本字段的数字范围?

时间:2016-01-08 11:36:32

标签: ios objective-c iphone xcode cocoa-touch

我想设定一个范围,即$ 350000和$ 350000之间。文本字段为800000美元。如果输入的数字小于此范围,则应弹出警报消息。 Plz帮助

3 个答案:

答案 0 :(得分:0)

在使用NSNumberFormatter的Objective-C中,您可以这样使用:

NSNumberFormatter *nf = [[NSNumberFormatter alloc] init];

nf.minimum = @10;
nf.maximum = @20;

NSNumber *a = [nf numberFromString:@"12"];
NSNumber *b = [nf numberFromString:@"22"]; 
//if the number is beyond the range, it will return nil, so in above b is nil
//so the following check will show the log and alert

if (!a || !b) {
    NSLog(@"Either of them is out of range");
    //show the UIAlert here
}

修改

您应该在以下场景中调用上述内容:

  1. 用户输入值并执行某些操作。在行动的开始使用上述。

  2. 或者每当用户输入并离开文本字段时,请使用textFieldDidEndEditing:的{​​{1}}委托方法调用上述内容。

  3. 注意 :由于您的号码前缀为UITextField,请务必在$中设置货币样式,而不是修剪它。

答案 1 :(得分:-1)

使用- (void) textViewDidEndEditing:(UITextView *)textView方法检查文本的intergerValue,如果它不符合您的要求,请显示弹出窗口。

如果想在旅途中检查,请使用- (BOOL) textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

NSString *finalText = [textView.text stringByAppendingPathComponent:text];
finalText = [finalText stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

//enable button
if ([finalText integerValue] < 350000 || [finalText integerValue] > 850000) //do what you wanna do

确保$不在textfield中,或者在使用integerValue之前删除它。

答案 2 :(得分:-1)

这可能会有所帮助

-(void)viewDidLoad
    {        
      [txt addTarget:self action:@selector(CheckingMethod:) forControlEvents:UIControlEventValueChanged];
    }

-(IBAction)CheckingMethod:(id)sender
   {

   if(txt.text.length>9) {
     //your popupview
   }
    else{
     }
   }