我正在使用以下textfield delegate
驗證用戶條目。shouldChangeCharactersInRange行爲異常
我們假設currentTotal
等於30.00
美元,並且每當用戶輸入two times
等於或大於currentTotal
時,我試圖發出警報。
在我測試應用程序時,當用戶輸入63
美元時,沒有警報發生,但只要用戶輸入630
美元,然後發出警報。
tip
和currentTotal
是double
。
我在做什麼錯,有什麼建議?
- (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 = @"$ ";
}
什麼是您的currentTotal –
是30.00,雙。 – hotspring
將double轉換爲integerValue並檢查一次 –