Как поймать и обработать все события 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];
}

Вы можете определить, какая кнопка была нажата.

Всего наилучшего!!!

Другие вопросы по тегам