如果TextFields为空,则为iPhone执行此操作

时间:2010-01-19 19:04:32

标签: iphone

我有一个简单的计算器,但我的问题是如果用户没有在字段中输入任何数据,那么它仍然会计算。我以为我可以做到以下几点:

if (txtUserName.text == nil || txtUserName2.text == nil || txtUserName3.text == nil || txtUserName4.text == nil || txtUserName5.text == nil)
    {
        //error message 
        lblUserTypedName.text =@"Error - No Field Input";
    }
    else
    {
    lblUserTypedName.text = [[NSString alloc] initWithFormat: @"%2.1f%%", ultimate_risk];
    }

但它根本不起作用。任何帮助让我知道我在这里失踪的人将不胜感激。我想用||因此,即使他们输入除了一个以外的所有字段,它仍会捕获它。

3 个答案:

答案 0 :(得分:4)

你会想做[txtUserName.text isEqualToString:@""]之类的事情,因为空字符串与nil对象不同。您还可能希望从字符串中删除空格,然后再检查它们是否为空,具体取决于您的应用程序的功能。我会在UITextField编辑委托方法中使用空格剥离,而不是在此方法中。

编辑:

if ([txtUserName.text isEqualToString:@""] || [txtUserName2.text isEqualToString:@""] || [txtUserName3.text isEqualToString:@""] || [txtUserName4.text isEqualToString:@""] || [txtUserName5.text isEqualToString:@""])
{
  //error message 
  lblUserTypedName.text =@"Error - No Field Input";
}
else
{
  lblUserTypedName.text = [[NSString alloc] initWithFormat: @"%2.1f%%", ultimate_risk];
}

答案 1 :(得分:1)

我建议使用NSString的length方法来确定是否有任何输入。所以你可以使用

if ([txtUserName.text length]== 0 || [txtUserName2.text length]== 0 || [txtUserName3.text length]== 0 || [txtUserName4.text length]== 0 || [txtUserName5.text length]== 0)
{
    //error message 
    lblUserTypedName.text =@"Error - No Field Input";
}
else
{
lblUserTypedName.text = [[NSString alloc] initWithFormat: @"%2.1f%%", ultimate_risk];
}

这适用于text属性为nil(根据文档的默认值)和text属性为空字符串。

另请注意,这仍然执行计算,它只是不显示它。如果要阻止计算,则需要移动代码以将ultimate_risk计算到else块中。

答案 2 :(得分:0)

如果您想检查多个字符串,可以执行此操作

if([txtUserName.text isEqualToString:@""] ||
 [txtUserName2.text isEqualToString:@""] ||
 [txtUserName3.text isEqualToString:@""] ||
 [txtUserName4.text isEqualToString:@""] ||
 [txtUserName5.text isEqualToString:@""] 
 )
{
 //error message 
  lblUserTypedName.text =@"Error - No Field Input";
}
else
{
lblUserTypedName.text = [[NSString alloc] initWithFormat: @"%2.1f%%", ultimate_risk];
}