Ash*_*Ash 5 iphone subclass uicontrol ipad ios
我想实现UIControl的自定义子类.除了一个致使我吐牙的致命问题之外,它的工作非常精美.每当我使用sendActionsForControlEvents:发送动作消息时,它都会省略包含UIEvent.例如,如果我将其链接到具有以下签名的方法:
- (IBAction) controlTouched:(id)sender withEvent:(UIEvent *)event
Run Code Online (Sandbox Code Playgroud)
......事件总是以零回复!问题似乎发生在sendActionsForControlEvents中:
现在,我需要我的IBAction才能确定触摸的位置.我通常是通过从事件中提取触摸来实现的.当然必须有某种方法来确保交付正确的事件?这是使用UIControl的一个非常基本的部分!
有人知道法律解决方法吗?
我认为这是因为该sendActionsForControlEvents:方法无法知道UIEvent您的控件事件应该与哪个(如果有)相关联。
您可以尝试单独发送所有操作(sendActionsForControlEvents:根据文档复制该方法的作用),因此您可以将它们与以下具体关联UIEvent:
UIEvent *event = ...;
UIControlEvents controlEvent = ...;
for (id target in [self allTargets]) {
NSArray *actions = [self actionsForTarget:target forControlEvent:controlEvent];
for (NSString *action in actions) {
[self sendAction:NSSelectorFromString(action) to:target forEvent:event];
}
}
Run Code Online (Sandbox Code Playgroud)