Пользовательский UIControl всегда отправляет ноль объектов UIEvent - PullRequest
3 голосов
/ 30 июля 2011

У меня есть класс, производный от UIControl, в котором я отслеживаю события touchesBegan / Moved / Ended / Cancelled. В рамках этих событий я называю одинаковые события как на супер, так и на следующем респонденте следующим образом:

[self.nextResponder touchesEnded:touches withEvent:event];
[self sendActionsForControlEvents:UIControlEventTouchUpInside];
[super touchesEnded:touches withEvent:event];

У меня есть родительский элемент управления, которому принадлежит табличное представление. Ячейки в табличном представлении содержат один из моих пользовательских элементов управления. Чтобы ответить на щелчок, я назначаю селектору элемент управления при его создании и добавляю его в ячейку табличного представления следующим образом:

[myControl addTarget:self action:@selector(myControlTap:withEvent:)forControlEvents:UIControlEventTouchUpInside]; 
[cell.contentView addSubview:myControl];

Селектор родительского элемента управления выглядит следующим образом:

- (void)myControlTap:(id)sender withEvent:(UIEvent *)event{
     //UIEvent is always null!
}

Может кто-нибудь сказать мне, почему UIEvent всегда равен нулю? Если я использую экземпляр UIButton вместо своего пользовательского UIControl, тогда UIEvent не равен nil. Кроме того, если я не вызываю sendActionsForControlEvents в моем элементе управления, тогда родительский элемент управления никогда не будет получать никаких уведомлений о событиях.

1 Ответ

0 голосов
/ 18 августа 2012

Измените «withEvent» на «forEvent» в методе и селекторе.

...