1

我是新手,Objective C 我正在生成动态textfields并尝试从每个textfield按钮按下时获取 .text 值,但我面临的问题是仅获取最后一个值,例如 -textfield如果生成 3 个动态textfeilds并且我输入值 1,2, 3textfeilds分别我想要所有这些值,但目前我只从最后一个获得价值textfeild

我正在尝试的代码如下 //此函数生成动态文本字段

      - (void)dynamicTextboxes {
            NSString *string = txt1.text;
           int Pointsvalue = [string intValue];
           int x;     
          for (x=0; x < Pointsvalue ; x++)
            {     
               txtFldFrame1 = [[UITextField alloc] initWithFrame:CGRectMake(100,60*x,120,45)];
               txtFldFrame1.borderStyle=UITextBorderStyleRoundedRect;
               txtFldFrame1.keyboardType=UIKeyboardTypeNumberPad;    

                [self.view addSubview:txtFldFrame1];
               ArrPut=[[NSMutableArray alloc]initWithObjects:txtFldFrame1, nil];      
       }

         }


       // function to Acess the values
           NSString *string = txt1.text;
          int Pointsvalue = [string intValue];
          int x;
          for (x=0; x < Pointsvalue ; x++)
          {
              NSString * values=txtFldFrame1.text;
              [ArrPut addObject:values];
                if(txtFldFrame1.text.length>0)
                {

                 ArrClick=[NSMutableArray array];
               [ArrClick addObjectsFromArray:ArrPut];
             }
            }
               NSLog(@"%@",ArrClick);

任何人都可以帮助我提前谢谢

4

3 回答 3

1
- (void)viewDidLoad
{
    [super viewDidLoad];
    [self dynamicTextFields];
}
- (void)dynamicTextFields
{
    NSString *string = @"3";
    int Pointsvalue = [string intValue];
    int x;
    for (x=1; x < Pointsvalue ; x++)
    {
        UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(100,60*x,120,45)];
        textField.borderStyle=UITextBorderStyleRoundedRect;
        [textField setDelegate:self];
        textField.keyboardType=UIKeyboardTypeNumberPad;
        textField.tag = x;
        [self.view addSubview:textField];
    }
}

- (IBAction)btnRetrieveTextFeildValues:(id)sender
{
    NSMutableArray *valuesArray = [[NSMutableArray alloc]init];
    NSString *string = @"3";
    int Pointsvalue = [string intValue];
    int x;
    for (x=1; x < Pointsvalue ; x++)
    {
        UITextField *textField = (UITextField *)[self.view viewWithTag:x];
        NSLog(@"Text - -%@",textField.text);
        if ([textField.text length]!=0)
        {
            [valuesArray addObject:textField.text];
        }
    }
    NSLog(@"ValuesArray -- %@",valuesArray);
}
于 2013-04-06T11:05:01.167 回答
0
- (void)dynamicTextboxes
{
    NSString *string = txt1.text;
    int Pointsvalue = [string intValue];
    int x;
    for (x=1; x < =Pointsvalue ; x++)
    {
        txtFldFrame1 = [[UITextField alloc] initWithFrame:CGRectMake(100,60*x,120,45)];
        txtFldFrame1.borderStyle=UITextBorderStyleRoundedRect;
        txtFldFrame1.keyboardType=UIKeyboardTypeNumberPad;
        txtFldFrame1.tag = x;
        [self.view addSubview:txtFldFrame1];
        ArrPut=[[NSMutableArray alloc]initWithObjects:txtFldFrame1, nil];
    }

}


// function to Acess the values
UITextField *txtField = (UITextField *)[self.view viewWithTag:x];
NSString *string = txtField.text;
int Pointsvalue = [string intValue];
int x;
for (x=1; x < Pointsvalue ; x++)
{
    if(txtField.text.length>0)
    {   
        NSString * values=txtField.text;
        [ArrPut addObject:values];
    }
}
NSLog(@"%@",ArrClick);

嘿,UIView 本身的 tagValue 为 0...所以,从 1 开始循环...现在检查

于 2013-04-06T09:50:25.170 回答
0
NSString *string = txt1.text;
int Pointsvalue = [string intValue];
int x;
  ArrClick=[NSMutableArray array];
for (x=0; x < Pointsvalue ; x++)
{
    NSString * values=txtFldFrame1.text;
    [ArrPut addObject:values];
    UITextField *txtField = (UITextField *)[self.view viewWithTag:x];
    if(txtField.text.length>0)
    {


        [ArrClick addObjectsFromArray:ArrPut];
    }
}
NSLog(@"%@",ArrClick);
于 2013-04-06T09:53:12.683 回答