代码之家  ›  专栏  ›  技术社区  ›  Zach Smith

如果文本字段为空,则对iPhone执行此操作

  •  0
  • Zach Smith  · 技术社区  · 15 年前

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

    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 回复  |  直到 12 年前
        1
  •  1
  •   Brandon Bodnar    15 年前

    我建议使用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];
    }
    

    这对文本属性为nil(根据文档,这是默认值)和文本属性为空字符串都有效。

    还要注意,这仍然执行计算,只是不显示它。如果要阻止计算,需要移动代码进行计算 ultimate_risk 进入另一个街区。

        2
  •  4
  •   Kenny Winker    15 年前

    你会想做一些像 [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];
    }
    
        3
  •  0
  •   Mez    15 年前

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

    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];
    }