objective-c多按钮单击方法

时间:2010-11-20 11:22:49

标签: iphone objective-c cocoa-touch

我的主视图上有3个按钮(btn_easy,btn_medium,btn_hard),我通过xCode Interface Builder Library - Round Rect Button项目拖到我的主视图上。在我的ViewController.h和ViewController.m文件中声明它们之后:

 //ViewController.h
 IBOutlet UIButton  *btn_easy;
 IBOutlet UIButton  *btn_medium;
 IBOutlet UIButton  *btn_hard;

 @property(nonatomic,retain) IBOutlet UIButton  *btn_easy;
 @property(nonatomic,retain) IBOutlet UIButton  *btn_medium;
 @property(nonatomic,retain) IBOutlet UIButton  *btn_hard;

 //ViewController.m
 @synthesize btn_easy,btn_medium,btn_hard;

然后,我通过在我的视图中单击btn_easy,btn_medium,btn_hard(顺序),转到Connection Inspector并将“New Referencing Outlet”拖动到“”,继续将Interface Builder中的连接插座设置为“文件所有者”。文件所有者“(不确定这是否是我应该在这里做的)。

使我的ViewController.m文件中的按钮工作的方法如下:

 -(void)buttonPressed: (id) sender{
      NSLog(@"button clicked = %@",sender);
 }

我的问题是,当我点击任何一个按钮时,当我点击btn_easy时,实际上应该看到“button clicked = btn_easy”时,我的NSLog中没有任何内容出现,依此类推。

请帮助..... 谢谢

1 个答案:

答案 0 :(得分:2)

我认为你已经混淆了出口和行动。一个出口 - 正如你所定义的那样 - 使一个类别与另一个类别向外连接。控件可以触发一个动作。

您应该将buttonPressed添加到.h中:

- (IBAction)buttonPressed:(id)sender;

让Interface Builder将其识别为操作。然后,您可以控制 - 从按钮拖动链接到您的类(似乎是文件所有者)并将两者连接起来。我想,你想做三次。

这与将“内部触摸”链接拖到您的班级时相同,即当按钮在iOS上生效时。