0

我已经动态创建了文本字段我需要访问在文本字段中输入的文本。请帮助我做到这一点。

 -(void)createHHDynamicFieldForYValue:(int )yVal
  {

NSString *lblStr=[[NSString alloc]initWithString:[[healthyHeartFieldsAry objectAtIndex:tagHHCount] objectForKey:@"TestName"]];

dynamicHealthyHeartLbl=[[UILabel alloc] initWithFrame:CGRectMake(50,yVal,278,45)];
dynamicHealthyHeartLbl.backgroundColor=[UIColor clearColor];
dynamicHealthyHeartLbl.textColor=[UIColor colorWithRed:17/255.0 green:61/255.0 blue:83/255.0 alpha:1];
dynamicHealthyHeartLbl.textAlignment = UITextAlignmentLeft;
dynamicHealthyHeartLbl.text=lblStr;
dynamicHealthyHeartLbl.font = [UIFont boldSystemFontOfSize:18];
[healthyHeartScrollView addSubview:dynamicHealthyHeartLbl];
[dynamicHealthyHeartLbl release];
[lblStr release];



dynamicHealthyHeartImgVw=[[UIImageView alloc] initWithFrame:CGRectMake(375, yVal, 278,kTxtImgHgVal)];
dynamicHealthyHeartImgVw.image=[UIImage imageNamed:@"birth_date.png"];
dynamicHealthyHeartImgVw.backgroundColor=[UIColor clearColor];
[healthyHeartScrollView addSubview:dynamicHealthyHeartImgVw];
[dynamicHealthyHeartImgVw release];



dynamicHealthyHeartTxtFld=[[UITextField alloc] initWithFrame:CGRectMake(380,yVal,278,kTxtImgHgVal )];
dynamicHealthyHeartTxtFld.borderStyle = UITextBorderStyleNone;
dynamicHealthyHeartTxtFld.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
dynamicHealthyHeartTxtFld.textAlignment=UITextAlignmentLeft;
dynamicHealthyHeartTxtFld.textColor=[UIColor colorWithRed:17/255.0 green:61/255.0 blue:83/255.0 alpha:1];
dynamicHealthyHeartTxtFld.font = [UIFont systemFontOfSize:18];
dynamicHealthyHeartTxtFld.backgroundColor = [UIColor clearColor];
dynamicHealthyHeartTxtFld.autocorrectionType = UITextAutocorrectionTypeNo;
dynamicHealthyHeartTxtFld.returnKeyType = UIReturnKeyDone;
dynamicHealthyHeartTxtFld.clearButtonMode = UITextFieldViewModeWhileEditing;
dynamicHealthyHeartTxtFld.autocapitalizationType=UITextAutocapitalizationTypeNone;
dynamicHealthyHeartTxtFld.delegate = self;
dynamicHealthyHeartTxtFld.placeholder=[[healthyHeartFieldsAry objectAtIndex:tagHHCount] objectForKey:@"TestName"];
dynamicHealthyHeartTxtFld.tag=tagHHCount;
[healthyHeartScrollView addSubview:dynamicHealthyHeartTxtFld];
[dynamicHealthyHeartTxtFld release];


[healthyHeart_TxtFldAry addObject:dynamicHealthyHeartTxtFld];

[dynamicHealthyHeartTxtFld release];


tagHHCount++;


}

int YVal=35;
tagHHCount=0;
NSLog(@"healthyHeartFieldsAry Count %d",[healthyHeartFieldsAry count]);
for (int i=0; i<[healthyHeartFieldsAry count]; i++)
{
    [self createHHDynamicFieldForYValue:YVal];
    YVal=YVal+80;
}

在 TextField 中完成了编辑

    - (void)textFieldDidEndEditing:(UITextField *)textField
    {
        if(enteredHealthyHeart)
        {
            for(int i=0;i<[healthyHeart_TxtFldAry count];i++)
            {
                if(textField == [healthyHeart_TxtFldAry objectAtIndex:i])
                {
                    getHHTag=textField.tag;
                    //              UITextField *tempTxtFld=[healthyHeart_TxtFldAry objectAtIndex:getHHTag];

                dynamicHealthyHeartTxtFld=[healthyHeart_TxtFldAry objectAtIndex:getHHTag];
                if([dynamicHealthyHeartTxtFld.text length]>0)
                {
                    NSString *tempStr=dynamicHealthyHeartTxtFld.text;
                    NSLog(@"tempStr %@",tempStr);
                    if(![self checkForDecimalValue:tempStr])
                    {
                    Custom_Alert *alert=[[Custom_Alert alloc] initWithTitle:@"Alert" message:@"Please Enter Numeric Values" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
                    [alert show];
                    [alert release];

                }
                else
                {

                    if(([tempStr intValue] >= [[[healthyHeartFieldsAry objectAtIndex:getHHTag] objectForKey:@"MinVal"] intValue])&&([tempStr intValue] <= [[[healthyHeartFieldsAry objectAtIndex:getHHTag]objectForKey:@"MaxVal"]intValue]))
                    {
                        NSLog(@"validation Succcess!!!");
                    }
                    else
                    {
                        Custom_Alert *alert=[[Custom_Alert alloc] initWithTitle:@"Alert" message:@"Please check the Details" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
                        [alert show];
                        [alert release];
                    }


                }
            }


            [textField resignFirstResponder];
            //return YES;

        }
    }

}

}

我想知道如何访问 textField 文本。如何识别输入了哪些文本字段文本。有什么帮助吗???

4

4 回答 4

1

只要您有对 textField 的引用,它只是一个属性

textField.text将返回当前输入到 textField 中的任何内容。

于 2012-08-17T13:05:10.993 回答
0

如果您在interface文件中声明了文本字段,则可以通过它的实例变量访问它:

NSLog(@"text from textfield: %@", dynamicTextField.text);

或通过属性:

NSLog(@"text from textfield: %@", self.dynamicTextField.text);

for但是,如果您在循环中创建许多文本字段,请执行以下操作:

在创建 textField 时,说:

dynamicTextField.tag = x;

其中“x”是循环的递增整数。

现在,要访问它的价值,说:

for(UITextField *texter in self.view.subviews)
   if(texter.tag == 1)//or any other tag number you have specified on creating the textField
       NSLog(@"textfield with tag 1 contains text: %@", texter.text);

您只需要记住将哪个标签号分配给所需的文本字段

于 2012-08-17T13:07:38.223 回答
0

您已经创建了UITextFiled Obejct 的属性,然后您可以访问它txtFiled.text并且[txtFiled text]两者都可以使用。

于 2012-08-17T13:18:37.033 回答
0

在此方法- (void)textFieldDidEndEditing:(UITextField *)textField中,参数是用户输入的文本字段。

用于textField.text从文本字段中获取数据并textField.tag用于获取标签(用于识别文本字段)。

NSlog(@"%@",textField.text); //print the text content
NSlog(@"%d",textField.tag); //print the tag
于 2012-08-17T19:10:02.780 回答