gpt4 book ai didi

iphone - 为什么我的重写 sendActionsForControlEvents : never called?

转载 作者:行者123 更新时间:2023-12-03 18:59:05 28 4
gpt4 key购买 nike

UIControl 文档明确指出:

When a user touches the control in a way that corresponds to one or more specified events, UIControl sends itself sendActionsForControlEvents:.

所以我所做的非常简单。我创建了一个 UIControl 子类,并重写了它,如下所示:

- (void)sendActionsForControlEvents:(UIControlEvents)controlEvents {
[super sendActionsForControlEvents:controlEvents];
NSLog(@"- (void)sendActionsForControlEvents:(UIControlEvents)controlEvents");
}

然后我实例化了我的自定义 UIControl 并添加了一个如下所示的操作目标:

MyCustomControl *twb = [[MyCustomControl alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 80.0f, 80.0f)];
twb.backgroundColor = [UIColor yellowColor];
[twb addTarget:self action:@selector(anyTouch:) forControlEvents:UIControlEventAllTouchEvents];
[self addSubview:twb];

此外,我还为选择器实现了 -anyTouch: 方法,如下所示:

- (void) anyTouch:(id)sender {
NSLog(@"anyTouch");
}

发生了什么:我触摸该控件的 View ,当我触摸它时,-anyTouch 抛出“anyTouch”日志消息。但即使我继承了 UIControl 并覆盖了 sendActionsForControlEvents:,我也没有像我应该的那样收到日志消息。这是没有意义的。我已经覆盖了它。它应该记录该消息,该死。 %!§$%

最佳答案

我也遇到了同样的问题。我不认为 UIControl 本身使用 sendActionsForControlEvents: 来调度 sendAction:to:forEvent: 。从我看到的一些代码示例中,这个函数是为需要将事件推送到注册目标的外部用户提供的。

关于iphone - 为什么我的重写 sendActionsForControlEvents : never called?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1245073/

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