以编程方式生成UIButtons并将其与IBAction关联

16

如果我想通过编码生成一组按钮,然后将其与IBActions相关联,该怎么办? 如果我在Interface Builder中添加按钮,这很容易,但是对于这种情况我无法这样做。

2个回答

32
的方法是 - (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents

使用此方法的代码应如下所示:

UIButton *myButton = [[UIButton alloc] init...];
[myButton addTarget:something action:@selector(myAction) forControlEvents:UIControlEventTouchUpInside];
这假设你的 IBAction 命名为 myAction,并且 something 是定义该操作的控制器。

当为UIButton指定选择器时,您是否必须命名一个带有单个参数(所选按钮的ID)的方法?如果我指定了一个没有参数的方法会发生什么? - mmccomb
1
从文档中可以看到:“动作消息可以选择性地包括发送者和事件作为参数,按照这个顺序。" 你可以将方法作为动作,有零个、一个或两个参数。但别忘了为每个参数的动作名称后面加上冒号(:)。 - mrueg

6

首先,创建按钮:

UIButton * btn;

btn = [ [ UIButton alloc ] initWithFrame: CGRectMake( 0, 0, 200, 50 ) ];

然后添加一个操作:
[ btn addTarget: self action: @selector( myMethod ) forControlEvents: UIControlEventTouchDown ];

然后将按钮添加到视图中:
[ someView addSubView: btn ];
[ btn release ];

UIControl参考文档 UIButton参考文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接