如何获取文本字段值并通过该文本字段的标记值调用它们

时间:2016-08-12 06:26:05

标签: ios objective-c uialertcontroller

我有两个textFields.I din全局声明。所以我在UIAlertController内。现在textFields是:

text.tag = 100
text2.tag = 200

所以我有textfield2的一个选择器方法在该方法中,我需要调用textfield1值是否有字符串(hello)。这是我的代码:

问题编辑 -

4 个答案:

答案 0 :(得分:1)

喜欢

<强>选择-1

  

您可以访问直接标记

-(void)textDidChange:(UITextField *)textField
    {

if (textField.text.length > 0) {


        if (textField.tag == 100) // textField1
        {

                if ([textField.text containsString:@"@"])
                    NSLog(@"Valid");
                 else
                    NSLog(@"Invalid");                    
        }
          else 
         {
           //textField2 work
         }      

}

}

<强>选择-2

  

您可以访问Via Object Name

-(void)textDidChange:(UITextField *)textField
    {

if (textField.text.length > 0) {


        if (textField == textField1) // 100
        {

                if ([textField.text containsString:@"@"])
                    NSLog(@"Valid");
                 else
                    NSLog(@"Invalid");                    
        }
          else 
         {
           //textField2 work
         }      

}

}

<强>选择-3

  

我有两个文本字段。我没有全局声明。 - 为了你的概念,那就像

- (void)textDidChange:(UITextField *)sender
{
UIAlertController *alertController = (UIAlertController *)self.presentedViewController;
 if (alertController)
 {
UITextField *txt1 = alertController.textFields.firstObject;
 UITextField *txt2 = alertController.textFields.lastObject;


if (textField.text.length > 0) {


        if (textField == txt1) // 100
        {

                if ([textField.text containsString:@"@"])
                    NSLog(@"Valid");
                 else
                    NSLog(@"Invalid");                    
        }
          else 
         {
           //textField2 work
         }      

   }
}

答案 1 :(得分:1)

请这样做

-(void)textDidChange:(UITextField *)textField
    {

if(textField.tag == 100){// do stuff here

}else if(textField.tag == 200){
}

if (textField.text.length > 0) {

                NSString *string = textField.text; // Here i have to call my first textfield value using tag value 

                if ([string containsString:@"@"]) {
                    NSLog(@"Valid");
                } else {
                    NSLog(@"Invalid");
                }



}

}

答案 2 :(得分:1)

您可以尝试这样创建一个UITextField类型的实例变量,并使用alertController textField&#39;初始化此textField。

UITextField txtField;

[alertController addTextFieldWithConfigurationHandler:^(UITextField *textField1) {
    textField1.placeholder = @"iCloud ID";
    txtField = textField1;
}];

现在在textField

的方法中使用此textField2
-(void)textDidChange:(UITextField *)textField {
    if (textField.text.length > 0) {
         NSString *string = txtField.text; // Here you will get first textfield value
         if ([string containsString:@"@"]) {
              NSLog(@"Valid");
         } else {
              NSLog(@"Invalid");
         }
    }
}

答案 3 :(得分:0)

您可以使用textFields财产

  

警报显示的文本字段数组。 (只读)

请尝试一下:

-(void)textDidChange:(UITextField *)textField
{
    if (textField.text.length > 0) {

        for (UITextField *alertTextField in alertController.textFields) {

            if(alertTextField.tag == 100){   // first textfield

                NSString *string = alertTextField.text;

                if ([string containsString:@"@"]) {
                    NSLog(@"Valid");
                } else {
                    NSLog(@"Invalid");
                }
               break; 
            }
        } 
    } 
}