Мне нужно пропустить что-то очевидное здесь, но...
UIControl имеет метод
- (void)addTarget:(id)target action:(SEL)action forControlEvents: (UIControlEvents)controlEvents
который позволяет добавить действие, которое вызывается, когда происходит какое-либо из данных элементов управления. ControlEvents - это битмаска событий, которые говорят вам, что прикосновение опустилось, или было внутри, или было перетащено и т.д., Там около 16 из них, вы или их вместе, и вызываются, когда происходит какое-либо из них.
Селектор может иметь одну из следующих подписей
- (void)action
- (void)action:(id)sender
- (void)action:(id)sender forEvent:(UIEvent *)
никто из них не говорит вам, что такое битовая маска контрольного события. UIEvent - это нечто немного отличающееся, оно связано с фактическим событием касания и не (я думаю) содержит UIControlEvent. Отправитель (UIControl) также не может найти контрольные события.
Я хотел бы иметь один метод, который имеет дело с несколькими контрольными событиями, поскольку у меня есть некоторый общий код, независимо от того, какое событие или события произошли, но мне все еще нужно знать, что UIControlEvents для какой-то конкретной обработки.
Мне не хватает способа узнать, что использовали UIControlEvents, когда действие было вызвано, или мне действительно нужно отделить мой код от
-(void)actionWithUIControlEventX;
-(void)actionWithUIControlEventY;