UITextField:限制输入期间允许的最大值(数字)

Mel*_*lon 2 cocoa-touch objective-c uitextfield ios ios5

我有一个UITextField,我想将字段中允许的最大输入值限制为1000.那就是当用户输入数字时,一旦输入值大于999,输入字段中的值将不再更新除非用户输入的值小于1000.

我想我应该使用UITextField委托来限制输入:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
  //How to do
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何实现它.有什么建议?

==========更新=============

我的输入字段不仅允许用户输入整数,还包括浮动值,如999,03

Nat*_* R. 20

您应该在上面的方法中执行以下操作:

NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];

//first, check if the new string is numeric only. If not, return NO;
NSCharacterSet *characterSet = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789,."] invertedSet];
if ([newString rangeOfCharacterFromSet:characterSet].location != NSNotFound)
{
    return NO;
}

return [newString doubleValue] < 1000;
Run Code Online (Sandbox Code Playgroud)