例如,我创建了一个名为btn1-btn50的50个连续按钮的视图。如果我想要解决这些按钮并在循环中对它们进行一些更改,那么我如何使用字符串名称来解决控件问题?如何在obj-c中动态地控制一个地址?
回答
在层次结构中获取视图的典型方法是调用[parentView viewWithTag:]来获取视图。如果您将按钮标签值从1改为50,则可以使用它来访问按钮。
如果由于某种原因需要字符串,您将不得不创建一个具有名称成员的UIButton自定义子类,为该成员分配一个名称,然后迭代通过视图层次结构搜索自定义类的实例名称与您的搜索条件相匹配。
你不能保证这些按钮按顺序排列在内存中,所以试图使用指针算法可能已经没有了。但是,你可以得到一个的NSView的所有子视图与-subviews
,只是做一些与NSButtons:
for (NSView *view in [theView subviews]) {
if (![view isKindOfClass:[NSButton class]]) continue;
/// you got a button!
}
's/return/continue /'? – 2010-06-04 01:38:25
这可能工作,因为我可以循环遍历所有人寻找具有正确名称的人,但没有办法传递一个字符串来检索视图没有循环所有的人? – Smallinov 2010-06-04 01:42:59
@Georg,是的,谢谢!修复。 – kevingessner 2010-06-04 01:45:35
如果你给他们一个tag
,您可以使用-viewWithTag:
父视图方便地访问它们。
在你的View Contoller中添加一个NSMutableDictionary * buttonViews属性。在viewDidLoad方法中,使用名称字符串作为键和按钮作为对象将每个按钮添加到buttonViews。你必须使用viewWithTag:已经讨论过才能获得视图。现在您可以使用字符串定位按钮,并从收集方法和快速枚举中受益。 Apple的Interface Builder文档指出,IB中的“名称”用于帮助在IB中识别对象,这有助于翻译。
- 1. 动态地址
- 2. 如何动态创建具有多个地址的Google地图?
- 3. 如何从另一个控制器生成操作地址?
- 4. 如何在iPhone中动态地将帧分配给控制器?
- 5. 如何获取动态谷歌地图网址(有静态地图网址)
- 6. 如何动态地从一个ArrayList
- 7. 如何动态地建立一个gui
- 8. 谷歌地图动态地址
- 9. 如何在Grails控制器中获取客户端IP地址?
- 10. Web服务,在WSDL地址动态地址
- 11. 动态数组的地址
- 12. paypal动态返回地址
- 13. 动态从地址 - 邮戳
- 14. 动态int指针地址?
- 15. 我如何动态地将WPF控件更改为另一个?
- 16. 如何使用一个遥控器推送到另一个地址并从另一个地址拉出?
- 17. 如何在WSDL中动态设置SOAP地址的位置?
- 18. 如何动态地在PostgreSQL
- 19. 动态地在gridview中添加控件
- 20. 在VB.NET中动态地分组控件
- 21. 如何更好地控制UIImageView动画?
- 22. 如何动态地设置的元件的样式在一用户控制
- 23. SharePoint中的动态WCF基地址
- 24. 如何用C++动态地在visio中创建一个矩形?
- 25. 如何动态地在jQuery ui selectmenu中选择一个选项?
- 26. 如何动态绘制地图
- 27. 无法在Django中保存一个送货地址和一个帐单地址
- 28. 动态地从控制器动作返回一个AJAX动作链接
- 29. 如何获取Symfony2控制器中的用户IP地址?
- 30. 如何控制地址弹出窗口中的字段?
你是什么意思的按钮*命名* btn1-btn50?你的意思是那些是他们的标题属性?那些是你用来引用它们的变量的名字?这些是你与朋友讨论按钮时使用的昵称?按钮通常没有名字,所以你的术语很混乱。 – Chuck 2010-06-04 01:58:46
[目标C的等价PHP的“变量变量”]的可能重复(http://stackoverflow.com/questions/2283374/objective-c-equivalent-of-phps-variable-variables) – 2010-06-04 02:02:36
查克 - 我的名字到界面生成器中的名称,显然有一个叫做name的属性......它是否可以通过编程方式访问,这基本上就是这个问题的关键。我认为它可以总是在那里为组织在界面生成器,但它似乎应该能够编程方式。然而,根据我所得到的答案,我猜测假设它不是。 – Smallinov 2010-06-04 03:18:57