【问题标题】:variable for textfield Objective c [duplicate]文本字段目标c的变量[重复]
【发布时间】:2014-05-28 20:08:04
【问题描述】:

我正在使用

for(int k=i;k<6;k++){
    int q=k+1;
    switch (q) {
        case 1:
             textbox1.hidden=YES;
            break;
        case 2:
            textbox2.hidden=YES;
            break;
        case 3:
            textbox3.hidden=YES;

            break;
        case 4:
            textbox4.hidden=YES;

            break;
        case 5:
            textbox5.hidden=YES;

            break;
        case 6:
            textbox6.hidden=YES;

            break;
        default:
            textbox1.hidden=NO;
            break;
    }
}

我想知道是否无论如何都不能使用这样的东西: [@"文本框%@.hidden] = 是 或类似的东西.. 第二个问题 我必须做这样的事情:

[textbox2 setKeyboardType:UIKeyboardTypeDecimalPad];

但是由于我在 for .. 我不能放 textbox2 我需要放 "textbox%@, i" 所以它可以检测到它正在分析哪个文本框有什么想法?

【问题讨论】:

  • 使用数组。当你想使用 Obj-C-Way 时使用 NSArray 或 NSMutableArray。
  • 现在我明白了,谢谢!效果很好!
  • 你应该使用 IBOutletArrayCollection

标签: objective-c variables textbox keyboard textfield


【解决方案1】:

您无法进行您要求的替换。使用反射可能会找到一些替代方案,但生成的代码会比你已经得到的更难看。但是,您可以利用您的 q 为 1-6 并使用一组文本框:

id textboxes[] = {textbox1, textbox2, ... textbox6};


if ((q >= 1) && (q <= 6)) textboxes[q-1].hidden = YES;
else textbox1.hidden=NO;

【讨论】:

  • 确实好主意,效果很好! ,关于键盘有什么想法吗?
  • 我不清楚您需要对键盘类型做什么,但根据您的描述,您似乎可以使用相同的数组...int boxnum = 2; [[textboxes[boxnumn-1] setKeyboardType:...];
  • 哈哈,看来你明白我的意思了,哈哈,完美,感谢您所做的一切!
猜你喜欢
  • 1970-01-01
  • 2011-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-02
相关资源
最近更新 更多