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)