2011-12-16 35 views
3

我想要一个视图的所有按钮(及其所有事件)的单一方法。到目前为止,这是我有:如何在单一方法中捕获并处理UIButton的所有事件?

- (IBAction)uibuttonEvent:(id)idSender forEvent:(UIEvent*)uieventHandle 
{ 
    if (idSender == [self uibuttonConnectInput]) { 
     if ([uieventHandle type] == UIEventTypeTouches) { 
      [[self uibuttonConnectInput] setTitle:@"did it!" forState:UIControlStateNormal]; 
     } 

    } else if (idSender == [self uibuttonSomething]) { 
     ... 

    } 
} 

所以,现在我可以检测该事件是否是UIEventTypeTouches或没有,但我要检查更具体无论是如UIControlEventTouchUpInside - 我该怎么做?

回答

2

正如所讨论的here你从UIButton得到的UIEvent不会给你任何有关哪个UIControlEvent引起它的信息。既可以为每种事件类型注册单独的方法(推荐的解决方案),也可以制作自己的UIControl子类并使其行为不同。

0

我认为你必须为所有按钮赋予不同的标签。

- (IBAction)uibuttonEvent:(id)idSender { 
    int iTag = [sender tag]; 
} 

您可以识别哪个按钮被按下。

所有最好的!

+1

我想他说的是定义一个事件,发生在这个按钮上,他已经能够知道他正在使用哪个按钮 – makaron 2011-12-16 10:08:52

+0

正如makaron提到的,我已经能够检测到UIButton,但不是特定的事件。 – 2011-12-16 10:14:58

相关问题