如何不允许用户在uitextfield中input超过190的值?

在进入本身时,我必须允许uitextfield值小于190, uitextfield不应该允许用户在19之后input19位数字。

任何人都可以提供一些关于这方面的信息。 我尝试了下面的代码,但它允许超过190

 if countElements(textField.text!) + countElements(string) - range.length < 4 { var floatValue : Float = NSString(string: toString(textField.text)).floatValue return floatValue < 190.0 } 

我将如何做是设置包含uitextfield作为文本字段的委托uiviewcontroller。 然后添加这个:

 //If number of characters needs to be less than 190 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string]; if([newString length]>190){ return NO; } return YES; } //If value needs to be less than 190 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string]; if([newString intValue]>190){ return NO; } return YES; } 

您可以使用UITextFieldTextDidChangeNotification,然后在通知select器中进行值检查。 这里是我在Xcodevalidation的实现的一个例子:

 #import "ViewController.h" @interface ViewController () <UITextFieldDelegate> @property (strong, nonatomic) IBOutlet UITextField *textField; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.textField.delegate = self; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldDidChange) name:UITextFieldTextDidChangeNotification object:nil]; } - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; [[NSNotificationCenter defaultCenter] removeObserver:self]; } - (void)textFieldDidChange { if ([self.textField.text length] > 3) { NSString* subString = [self.textField.text substringWithRange:NSMakeRange(0, 3)]; self.textField.text = subString; } if ( [self.textField.text intValue] > 190) { NSString* subString = [self.textField.text substringWithRange:NSMakeRange(0, 2)]; self.textField.text = subString; } } @end