我有两个UITextfields - textfield1
和textfield2
。
我正在做两个文本字段的乘法运算。 textfield2
具有固定值,textfield1
用户可以自行设置值。
现在,我面临一个问题。如果用户设置值0,那么我正在显示警告消息。
if ([textfield1.text isEqualToString:@"0"])
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:APP_NAME message:@"You can not set Zero." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
}
但是,如果用户设置了多个零或十进制零(0.0或0.00),那么我将无法显示警告消息。
答案 0 :(得分:5)
不要使用字符串。转换为数字:
double value1 = [textfield1.text doubleValue];
if (value1 == 0.0) {
// show alert
}
更新:实际上,使用doubleValue
不是一个好主意,因为您想要支持来自世界各地的用户。有些用户可能会输入值为0.5
而有些用户可能会使用0,5
等。最好使用NSNumberFormatter
将输入的文本转换为数字。
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
NSNumber *number = [formatter numberFromString:textfield1.text];
double value1 = [number doubleValue];
答案 1 :(得分:1)
float value1 = [textfield1 text] floatValue];
int value2 = [textfield1 text] intValue];
if (value1 == 0.0 || value2 == 0) {
// show alert
}
答案 2 :(得分:0)
你可以添加< UITextFieldDelegate>到你的xxclass.h
并在xxclass.m中实现委托
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if([textField.text isEqualToString:@""] && [string isEqualToString:@"0"]){
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:APP_NAME message:@"You can not set Zero." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil]; [alert show];
return NO;
}
return YES;
}