2

在多个按钮调用 IBOutlet 的情况下,IBOutlet 是否可以确定按下了哪个按钮?

编辑:

所有固定和接线。关键点:对象 ID 不是发件人标签!标签是属性的第一页上的独立值。

- (IBAction)buttonPressed:(id)sender
{
    switch ( [sender tag] )
    {
        case 109:
            NSLog(@"Button 1");
            break;

        case 108:
            NSLog(@"Button 2");
            break;
    }
}
4

3 回答 3

5

在多个按钮调用 IBOutlet 的情况下

也许是 IBAction?

冷杉如果全部

- (IBAction) actionPerformed:(id)sender

所以,发件人是你的按钮

二是UIView的每个子类都有一个tag字段,所以可以使用

int tag = [sender tag];

您可以在 IB 中设置标签

于 2009-03-07T16:32:57.410 回答
2

通常,您会将按钮事件(Touch Down)连接到您希望在控制器中调用的 IBAction 方法。

方法原型如下所示:

-(IBAction) doStuff:(id)sender;

然后,如果需要,可以使用“发送者”来验证进行调用的对象的身份。

IBOutlet 将用于从您的代码中联系 UIButton,例如设置其文本或属性。

于 2009-03-07T16:30:02.313 回答
0

更好的是,为 UI 中的每个按钮定义一个 IBAction 方法。然后,您可以使用 IB 将按钮单独连接到方法,并避免将 const 整数硬编码到您的代码中。

于 2010-06-15T02:25:56.760 回答