如何将振动与按钮点击相关联

时间:2010-12-14 05:42:07

标签: objective-c

我必须遵循代码

-(IBAction)doVibrate{
    [self vibrate];
}
-(void)vibrate{
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
}

doVibrate和vibrate都是同一类。但是当我点击与doVibrate相关联的按钮时,它不会振动。 我已导入AudioToolbox/AudioToolbox.hAVFoundation/AVFoundation

有人可以告诉我哪里错了。 谢谢

1 个答案:

答案 0 :(得分:2)

IBActions通常具有以下形式:

- (IBAction)vibrate:(id)sender;

请注意,以下3种方法都不同:

- (IBAction)vibrate:(id)sender;
- (IBAction)vibrate; // no sender argument
- (void)doVibrate;

这是我要做的。在.h文件中,定义以下方法:

- (IBAction)vibrate:(id)sender;
// - (IBAction)vibrate;  comment out this method

在.m文件中,执行以下操作:

- (IBAction)vibrate:(id)sender {
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
}

现在,当您保存.h和.m文件,并切换回Interface Builder中的nib / xib文件时,它可能会显示一条黄色警告消息,“'vibrate'不再在”您的类名中定义这里'。没关系,因为以下内容应该删除该错误。按住Control键并单击(或右键单击)按钮并拖动到控制器类,然后选择“vibrate:”作为要调用的方法名称(注意方法名称中的冒号,:)。