Как поймать и обработать все события UIButton в одном методе?
Я хочу иметь единый метод для всех кнопок (и всех их событий) представления. Пока это то, что я получил:
- (IBAction)uibuttonEvent:(id)idSender forEvent:(UIEvent*)uieventHandle
{
if (idSender == [self uibuttonConnectInput]) {
if ([uieventHandle type] == UIEventTypeTouches) {
[[self uibuttonConnectInput] setTitle:@"did it!" forState:UIControlStateNormal];
}
} else if (idSender == [self uibuttonSomething]) {
...
}
}
Так что теперь я могу определить, является ли событие UIEventTypeTouches
или нет, но я хочу более конкретно проверить, является ли это, например, UIControlEventTouchUpInside
- Как мне это сделать?
2 ответа
Решение
Как уже говорилось, UIEvent, который вы получаете от UIButton, не дает вам никакой информации о том, какая причина была вызвана UIControlEvent. Либо зарегистрируйте отдельные методы для каждого типа событий (рекомендуемое решение), либо создайте свой собственный подкласс UIControl и заставьте его вести себя по-разному.
Я думаю, что вы должны дать другой тег для всей этой кнопки.
- (IBAction)uibuttonEvent:(id)idSender {
int iTag = [sender tag];
}
Вы можете определить, какая кнопка была нажата.
Всего наилучшего!!!