我正在使用 UIBarButtonItem 来触发事件。我使用 xcode4 中的集成 InterfaceBuider 来创建我的 UIBarButtonItem,然后我将按钮连接到我的视图控制器中的方法。该方法如下所示:
-(IBAction)NoteOnOff:(id)sender
{
UIButton *button = (UIButton*)sender;
/* now perform action */
}
现在我还想检测 fingerdown/fingerup,因为我想为 midi 合成器类型的应用程序触发 noteon/noteoff 类型的事件。
1-有没有办法检测sender
上述方法是否被按下或按下?
2-我尝试继承 UIBarButtonItem 并以这种方式实现 touchesBegan 和 touchesEnded:
@interface myUIBarButtonItem : UIBarButtonItem {
}
@end
@implementation myUIBarButtonItem
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
NSLog(@"touchesBegan");
NSLog(@"touches=%@,event=%@",touches,event);
}
-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
NSLog(@"touchesEnded");
NSLog(@"touches=%@,event=%@",touches,event);
}
@end
然后我在界面编辑器中将 UIBarButtonItem 的类更改为 myUIBarButtonItem 但没有运气。这是在界面编辑器中使用我的自定义类的正确方法吗?
3-我在某处读到 UIBarButtonItem 不从 UIResponder 继承,因此它们无法拦截 touchesbegan/touchesended 事件。如果是这种情况,那么能够检测触地和触地事件的正确方法是什么?我主要是一名 C/C++ 程序员,我对目标 C 和 iphone 环境的了解非常有限。我只知道如何使用 UI 编辑器,我不知道如何创建自定义 UI 并在没有此编辑器的情况下使用它们。
底线是:以尽可能少的延迟检测触地/触地的最简单方法是什么?
也欢迎任何指向教程或文档的指针。
谢谢,
爸爸