【发布时间】:2010-03-13 09:38:25
【问题描述】:
我必须在这里遗漏一些明显的东西,但是......
UIControl 有一个方法
- (void)addTarget:(id)target action:(SEL)action forControlEvents: (UIControlEvents)controlEvents
它允许您添加一个在任何给定 controlEvents 发生时要调用的操作。 ControlEvents 是事件的位掩码,它告诉您触摸是否向下、向上或被拖动等,大约有 16 个,您或它们在一起,并在其中任何一个发生时被调用。
选择器可以具有以下签名之一
- (void)action
- (void)action:(id)sender
- (void)action:(id)sender forEvent:(UIEvent *)
这些都没有告诉你控制事件位掩码是什么。 UIEvent 稍有不同,它与实际的触摸事件有关,并且(我认为)不包含 UIControlEvent。发送方 (UIControl) 也没有办法找到控件事件。
我想要一种方法来处理许多控制事件,因为我有一些通用代码,无论发生了哪些事件或事件,但我仍然需要知道 UIControlEvents 用于某些特定处理。
我是否错过了一种方法来找出在调用操作时使用了什么 UIControlEvents,或者我真的必须将我的代码分成
- (void)actionWithUIControlEventX;
- (void)actionWithUIControlEventY;
【问题讨论】:
-
“[...] 你或他们在一起 [...]” - 花了我一点时间来理解他那句话的意思 :)
标签: objective-c events action target