gpt4 book ai didi

iphone - UIControl:sendActionsForControlEvents 省略了 UIEvent

转载 作者:可可西里 更新时间:2023-11-01 04:42:25 32 4
gpt4 key购买 nike

我想实现 UIControl 的自定义子类。除了一个让我吐出 dentry 的致命问题外,它工作得很好。每当我使用 sendActionsForControlEvents: 发送操作消息时,它都会忽略包含 UIEvent。例如,如果我将它链接到具有以下签名的方法:

- (IBAction) controlTouched:(id)sender withEvent:(UIEvent *)event

...事件总是返回为 nil!问题似乎发生在 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];
}
}

关于iphone - UIControl:sendActionsForControlEvents 省略了 UIEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11382816/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com