Establezca el range de valores numéricos para un campo de text

Tengo un campo de text que debe tomar el valor numérico de un range específico solamente, digamos m a n. He revisado muchos artículos, pero todos dicen cómo establecer la longitud máxima para el campo de text. Pero necesito configurar el campo de text para que tome valores solo del range, digamos 23 a 103. Logré asegurarme de que el campo de text solo tome valores numéricos al configurar el tipo de keyboard en el keyboard numérico. Alguien por favor ayuda.

Puede verificar el valor cuando el usuario finalizó la edición del campo de text.

Configure el delegado de textField en su controller de vista y luego:

 - (BOOL)textFieldShouldReturn:(UITextField *)textField { NSString *stringValue = textField.text; NSInteger integer = [stringValue intValue]; if (integer <23 || integer > 103) // You can make the text networking here for example return NO; else return YES; } 

Por lo general, logra esto utilizando un formateador de numbers personalizado que tenga un valor aceptable mínimo / máximo, como este:

 NSNumberFormatter* formatter= [[NSNumberFormatter alloc]init]; formatter.numberStyle= NSNumberFormatterDecimalStyle; formatter.allowsFloats= NO; formatter.maximum= @103; formatter.minimum= @23; 

Luego permita que el usuario regrese solo si el formateador devuelve un número válido:

 - (BOOL)textFieldShouldReturn:(UITextField *)textField { return [formatter numberFromString: textField.text]!= nil; } 

Prueba esto. Si desea establecer el range para un campo de text en particular.

 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 

{

 if(textField == self.txtMobileNumber ) { if (textField.text.length >= 10 && range.length == 0) return NO; } }