代码之家  ›  专栏  ›  技术社区  ›  sadmicrowave

目标C多按钮点击法

  •  0
  • sadmicrowave  · 技术社区  · 14 年前

    我的主视图上有3个按钮(btn_easy、btn_medium、btn_hard),我通过xcode Interface Builder库-Round Rect按钮项拖拽到主视图上。在我的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 eu easy、btn eu medium、btn eu hard(按顺序),转到连接检查器并将“新引用出口”拖动到“文件的所有者”(不确定这是否是我在这里应该做的)。

    我在viewcontroller.m文件中使用按钮的方法如下:

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

    我的问题是,当我单击任何按钮时,当我实际看到“button clicked=btn_easy”时,nslog中不会显示任何内容,如btn_easy等等。

    请帮助….. 谢谢你

    1 回复  |  直到 14 年前
        1
  •  2
  •   Tommy    14 年前

    我想,你把出口和行动搞混了。一个出口——正如你所定义的——给一个类一个与另一个类的外部连接。动作是控件可以触发的。

    您应该将按下的按钮添加到.h中,如下所示:

    - (IBAction)buttonPressed:(id)sender;
    

    让接口生成器将其识别为一个操作。然后,您可以控制将一个链接从一个按钮拖到您的类(它似乎是文件所有者)并将两者连接起来。我想你会想做三次。

    这与将链接从“touch up inside”拖动到您的类相同,即按钮在iOS上生效的时间。

    推荐文章