【发布时间】:2017-07-25 04:31:14
【问题描述】:
我正在使用以下textfield delegate 来验证用户输入。
让我们假设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 = @"$ ";
}
【问题讨论】:
-
你的当前总数是多少
-
30.00,双倍。
-
将 double 转换为 integerValue 并检查一次
-
我需要加倍。当我调试时,即使在文本字段上我看到
63,但在委托方法中我看到tip值是6。当我添加一个数字使其成为630时,我看到提示值为63,然后它会发出警报。
标签: ios objective-c uitextfield