документация UIControl ясно сказано:Почему мой overriden sendActionsForControlEvents: никогда не звонил?
Когда пользователь касается контроля в способом, который соответствует одному или нескольким указанных событий, UIControl посылает сам 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");
}
Что происходит: я касаюсь взгляд от такого контроля, и -anyTouch выбрасывает «anyTouch» LOG сообщения в то время как я касаюсь вокруг по г т. Но даже если я подклассифицировал UIControl и переопределил sendActionsForControlEvents :, я не получаю сообщение журнала, как я должен. Это бессмысленно. Я перезаписал его. Он должен записать это сообщение, черт возьми. %! § $%
Спасибо за это. Документы кажутся довольно обманчивыми. –