Red de conocimiento de recetas - Recetas caseras - Configuración del cuadro de entrada "cantidad" de iOS

Configuración del cuadro de entrada "cantidad" de iOS

Generalmente sólo se pueden introducir números y dos decimales.

-(BOOL)textField:(UITextField *)textField deberíaChangeCharactersInRange:(ns range) reemplazo de rango String:(NSString *)string{

? //Determina si hay un punto decimal.

? if([campo de texto . el texto contiene cadena:@ ").]) {

?self.isHaveDian = YES

?} else {

?self. isHaveDian = NO

? }

? if(string . length & gt; 0) {

? //Caracteres de entrada actuales

?unicharsingle =[string caracter atindex:0];

//No se pueden ingresar caracteres distintos del 0-9.

If (!((single>= ' 0 ' & amp& amp single<='9') || single == ','))returnNO

? //Solo se permite un punto decimal

? . ')returnNO

? //Si el primer número es .textfield . longitud == 0)& amp;& amp(single == ' . ') ) {

? textField.text = @ " 0

? }

? //Si el primer dígito es 0, se debe ingresar un punto después, de lo contrario no se puede ingresar.

? if([campo de texto. texthasprefix:@ " 0 "]){

? if(campo de texto . texto . longitud >1) {

? ns cadena * secondStr =[campo de texto . textsubstringwithrange:NSMakeRange(1, 1)]

? if(![segundostrisecaltostring:@].])return no;

? }¿En caso contrario{

? if(![stringisEqualToString:@].])return no;

? }

? }

? //Se pueden ingresar hasta dos dígitos después del punto decimal.

? if(self.isHaveDian) {

? NSRangeran =[campo de texto. textrangeofstring:@]. ];

? // Debido a que el tipo de rango.ubicación es NSUInteger, (rango. ubicación-ran. ubicación) no se puede emitir 2 juicios

? if(rango . ubicación & gt;ran.ubicación) {

? if([campo de texto. extensión de ruta de texto]). longitud>1)retorno no;

? }

? }

}

Devolver SÍ

}