代码之家  ›  专栏  ›  技术社区  ›  Smallinov

如何在obj-c中动态寻址控件?

  •  1
  • Smallinov  · 技术社区  · 14 年前

    例如,我创建了一个具有50个顺序按钮的视图,名为btn1-btn50。如果我想寻址这些按钮并在循环中对其进行一些更改,如何用字符串名称寻址控件?

    4 回复  |  直到 14 年前
        1
  •  3
  •   drawnonward    14 年前

    如果出于某种原因需要字符串,则必须创建具有名称成员的UIButton的自定义子类,为该成员指定名称,然后在视图层次结构中迭代搜索名称与搜索条件匹配的自定义类的实例。

        2
  •  2
  •   Georg Fritzsche    14 年前

    如果你给他们一个 tag -viewWithTag: 在父视图上。

        3
  •  1
  •   kevingessner    14 年前

    您不能保证这些按钮是按顺序排列在内存中的,因此尝试使用指针算法可能是行不通的。但是您可以使用 -subviews ,只需按一下按钮:

    for (NSView *view in [theView subviews]) {
        if (![view isKindOfClass:[NSButton class]]) continue;
        /// you got a button!
    }
    
        4
  •  0
  •   falconcreek    14 年前