2012-08-17 101 views
0

我已經創建了textfield動態我需要訪問在文本框中輸入的文本。請幫助我做到這一點。在iPhone中訪問動態創建文本字段的文本?

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

在文本字段真的結束編輯

- (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; 

     } 
    } 

} 

}

我想知道如何訪問文本框的文本。如何識別輸入哪些文本字段文本。任何幫助?

+0

可以知道,通過使用文本字段 – 2012-08-17 13:04:47

+0

該標籤的標籤值也是我dynamic.How可以將文本識別是屬於哪個文本框? – 2012-08-18 05:53:49

+0

以及我想你有你的答案。 – 2012-08-18 06:23:59

回答

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); 

你只需要記住哪個標籤號碼被分配到

1

只要你有文本字段它只是一個屬性

textField.text將返回任何當前輸入到文本字段的引用。

0

您創建的財產所需的文本框UITextFiled Obejct那麼你可以訪問它txtFiled.text[txtFiled text]都可以使用。

0

在這種方法- (void)textFieldDidEndEditing:(UITextField *)textField參數是用戶鍵入的文本字段。

使用textField.text從文本字段獲取數據,使用textField.tag獲取標籤(用於標識文本字段)。

NSlog(@"%@",textField.text); //print the text content 
NSlog(@"%d",textField.tag); //print the tag