【问题标题】:How to Print the value on Uitextfield With tag?如何使用标签打印 Uitextfield 上的值?
【发布时间】:2012-08-13 13:08:07
【问题描述】:

我有一个带有标签的文本字段。以下循环创建 20 个文本字段。

txt_Pos_Y =20;

for (j=0; j<20; j++) {

if (j<20) {
txtField = [[UITextField alloc] initWithFrame:CGRectMake(110, txt_Pos_Y, 100, 15)];
txtField.borderStyle = UITextBorderStyleRoundedRect;
txtField.font = [UIFont systemFontOfSize:11];
txtField.tag = j;
txtField.placeholder = @"Enter Value";
txtField.autocorrectionType = UITextAutocorrectionTypeNo;
txtField.keyboardType = UIKeyboardTypeDefault;
txtField.returnKeyType = UIReturnKeyDone;
txtField.clearButtonMode = UITextFieldViewModeWhileEditing;
txtField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;    
txtField.delegate = self;
[scrollView addSubview:txtField];
[txtField release];  
}
}


-(void)CalculateMethod{

txtField.tag = 1;


double a;

a = Var_sqFt * Var_sqMtr;

txtField.text = [[NSString alloc] initWithFormat:@"%.4f",a];    
}   

在 CalculateMethod() 中我想在 txtField.text 中显示“a”的值,但我无法在 txtField.tag = 1 上打印该值;

底部显示的值 textfeild 表示 txtField.tag =19;

我想在 txtField.tag = 1 文本字段上显示“a”的值。

喜欢这个

txtField.tag = 1 txtField.text.tag = [[NSString alloc] initWithFormat:@"%.4f",a];

如何做到这一点?

【问题讨论】:

  • 你的问题必须尽量简洁和全面。

标签: iphone objective-c xcode ios5


【解决方案1】:

使用这个

-(void)CalculateMethod {
    UITextField *txtFld = (UITextField*)[scrollView viewWithTag:1];
    double a;
    a = Var_sqFt * Var_sqMtr;
    txtFld.text = [[NSString alloc] initWithFormat:@"%.4f",a];
}

【讨论】:

  • @deanWombourne 你已经获得了很多回购,现在让我接受这个特权:D
  • 不工作,结果显示在控制台上,但现在没有任何文本字段显示。
  • 您检查过[[NSString alloc] initWithFormat:@"%.4f",a]a 的值吗??
  • 控制台上显示的结果如何 - 这里没有代码有 NSLog in - 你有什么改变?
  • 您是否错误地为您的文本字段和标签提供了相同的tag - viewWithTag: 只返回具有您要求的标签的第一个视图 - 它不会检查您是否有多个具有相同标签的。
【解决方案2】:

版本 #1

NSMutableDictionary *textFieldsDictionary = [NSMutableDictionary dictionary]; // SPOt THe DIFFERENCE HERE

CGFloat txt_Pos_Y =20;

for (int j=0; j<20; j++) {
    UITextField *txtField = [[UITextField alloc] initWithFrame:CGRectMake(110, txt_Pos_Y, 100, 15)];
    txtField.borderStyle = UITextBorderStyleRoundedRect;
    txtField.font = [UIFont systemFontOfSize:11];
    txtField.tag = j;
    txtField.placeholder = @"Enter Value";
    txtField.autocorrectionType = UITextAutocorrectionTypeNo;
    txtField.keyboardType = UIKeyboardTypeDefault;
    txtField.returnKeyType = UIReturnKeyDone;
    txtField.clearButtonMode = UITextFieldViewModeWhileEditing;
    txtField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
    txtField.delegate = self;
    [scrollView addSubview:txtField];
    [textFieldsDictionary setObject:txtField forKey:[NSString stringWithFormat:@"%d", j]]; // SPOT THE DIFFERENCE HERE
    [txtField release];
}

和:

-(void)CalculateMethod{
    UITextField *txtField = [textFieldsDictionary valueForKey:[NSString stringWithFormat:@"%d", 1]];
    double a = 3.1415f;
    txtField.text = [[NSString alloc] initWithFormat:@"%.4f", a]; 
}

版本 #2

你应该只改变这个方法。

-(void)CalculateMethod{
    UITextField *txtField = nil;
    for (id temporarySubView in scrollView.subviews) {
        if ([temporarySubView isKindOfClass:[UITextField class]]) {
            if (((UITextField *)temporarySubView).tag == 1) {
                txtField = temporarySubView;
                break;
            }
        }
    }

   double a = 3.1415f;
   txtField.text = [[NSString alloc] initWithFormat:@"%.4f", a];
}   

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-16
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    相关资源
    最近更新 更多