Ich benutze folgende textfield delegate
, um Benutzereintrag zu validieren.shouldChangeCharactersInRange verhält sich seltsam
Nehmen wir an, dass currentTotal
gleich 30.00
Dollar und immer dann, wenn Nutzer gibt two times
gleich oder größer als currentTotal
und ich versuche, eine Warnung zu erteilen.
Während ich die Anwendung testen, wenn der Benutzer 63
Dollar eingibt, erfolgt keine Warnung, aber solange der Benutzer 630
Dollar eingibt, wird die Warnung ausgegeben.
tip
und currentTotal
sind double
.
Was mache ich falsch, irgendwelche Vorschläge?
- (BOOL)textField:(UITextField *)aTextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if ([aTextField.text containsString:@"$"])
{
tip = [[aTextField.text stringByReplacingOccurrencesOfString:@"$" withString:@""] doubleValue];
}
else
{
tip = [aTextField.text doubleValue];
}
if(tip > currentTotal *2)
{
[self presentViewController:[AppConstant oneButtonDisplayAlert:@"Error" withMessage:@"Please enter valid tip"] animated:YES completion:nil];
}
return YES;
}
- (void)textFieldDidBeginEditing:(UITextField *)textField {
self.tipTF.text = @"$ ";
}
whats your currentTotal –
Es 30.00 ist doppelt. – hotspring
konvertieren Double in IntegerValue und überprüfen Sie einmal –