【发布时间】:2015-08-10 16:37:13
【问题描述】:
我有一个按钮,我希望它的 Touch Up Inside 和 Touch Up Outside 操作都采用相同的方法。然后我希望该方法能够找出发生了哪个事件,如下所示:
- (IBAction)buttonMethod:(UIButton *)sender forEvent:(UIEvent *)event {
if (event == UIControlEventTouchUpInside)
NSLog(@"Touch up inside!");
if (event == UIControlEventTouchUpOutside)
NSLog(@"Touch up outside!");
}
}
这似乎不起作用,因为触摸事件似乎继承自 UIControl,而 UIControl 与 UIEvent 不在同一个宇宙中。有什么方法可以告诉我的方法是哪个动作导致该方法被调用?
【问题讨论】:
-
为什么你的内部修饰和外部修饰方法连接到同一个动作?
-
那你为什么不用两种方法分开呢。
-
因为这两种方法会做几乎完全相同的事情,除了 Touch Up Outside 会做一件事。如果可以检测到哪种类型的操作称为方法,我更愿意这样做,并且少一个方法和更少的代码。
标签: objective-c cocoa-touch uibutton