【问题标题】:Validation for textfield in uialertview验证 uialertview 中的文本字段
【发布时间】:2012-06-24 18:12:08
【问题描述】:

我用UIAlertViewStylePlainTextInput 风格显示UIAlertView。然后我尝试验证这样的空字段:

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{

    if (buttonIndex == 1) {
        if ([[alertView textFieldAtIndex:0].text length] > 0 ||
            [alertView textFieldAtIndex:0].text != nil ||
            [[alertView textFieldAtIndex:0].text isEqual:@""] == FALSE)
        {
            NSLog(@"error");
        }
        else
        {
            [self postToServer];
        }
    } else {
        //close alertview
    }
}

但即使文本字段不为空,它也会在日志中显示错误消息。

【问题讨论】:

  • 修改此语句 [alertView textFieldAtIndex:0].text length] > 0 为 [alertView textFieldAtIndex:0].text length] == 0

标签: ios xcode validation textfield alertview


【解决方案1】:

这是因为您的if 语句包含

[[alertView textFieldAtIndex:0].text length] > 0

这意味着如果有文本则NSLog(@"error"); 你的 if 应该是:

if ((![alertView textFieldAtIndex:0].text) || [[alertView textFieldAtIndex:0].text isEqual:@""])
{
      NSLog("error");
}

【讨论】:

    【解决方案2】:

    你可以使用下面的

    -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    
        if (buttonIndex == 1) {
            NSString *text = [alertView textFieldAtIndex:0].text;
    
            if([text isEqualToString:@""])
            {
                NSLog(@"empty");
            }
            else {
                NSLog(@"Not empty");
            }
        }
    }
    

    【讨论】:

      【解决方案3】:

      首先你有你的 NSLog(@"error");如果文本字段的长度大于 0,则在代码区域中为真。这似乎与您想要的相反!!!

      试试这个:

      -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
          if (buttonIndex == 1){
              if ([[alertView textFieldAtIndex:0].text length] > 0 ||                   
                  [[alertView textFieldAtIndex:0].text isEqual:@""] == FALSE){
                  [self postToServer];
              }else{
                  NSLog(@"error");
              }
          }else{
              //close alertview
          }
      }
      

      在这个 if 语句中你可能不需要大于零的长度,但是如果你以某种方式期待不可见的字符,那么保留它可能是可以的!!!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-27
        • 2018-11-28
        • 2019-04-24
        • 1970-01-01
        • 2011-12-01
        相关资源
        最近更新 更多