设置在IB中制作的UIButton的目标

时间:2010-06-27 20:12:33

标签: interface-builder uibutton target

我有一个带有一堆按钮的UIView(类似200个)......

视图已在IB中设置,因此我必须使用单个处理程序手动连接每个按钮...

我正在尝试遍历视图的子视图,查找按钮然后以编程方式设置按钮的目标...这会导致崩溃(我收到编译警告«UIButton可能无法响应addTarget ...» )。

这是循环:

for(UIButton *aButton in self.view.subviews){

        if([aButton isKindOfClass:[UIButton class]]){

            [aButton addTarget:self selector:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
        }
    }

我可以访问按钮的某些属性,例如可见性和标题......但不是动作?

任何帮助都非常感谢......!

3 个答案:

答案 0 :(得分:5)

哇 - 实际上很简单 - 在devforums.apple.com上的那些人给了我提示......

for(UIButton *aButton in self.view.subviews){

        if([aButton isKindOfClass:[UIButton class]]){

            [aButton addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
        }
    }

你能发现差异吗? ;)

答案 1 :(得分:0)

您可以使用respondsTo或其他变体来避免错误。这样可以确保您可以为aButton设置操作。

但是,如果你正在循环遍历所有这些按钮,为什么不以编程方式构建它们呢?他们的设计很重吗?

答案 2 :(得分:0)

你应该将答案标记为正确。

但以防其他人来:

应该是:

addTarget:self action :@ selector(buttonClick:)

而不是:

addTarget:self selector :@ selector(buttonClick:)