Как перехватить и обработать все события UIButton одним способом? - PullRequest
3 голосов
/ 16 декабря 2011

Я хочу иметь один метод для всех кнопок (и всех их событий) представления. Пока это то, что у меня есть:

- (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 ]

1 голос
/ 16 декабря 2011

Как обсуждено здесь UIEvent, который вы получаете от UIButton, не дает вам никакой информации о том, какой UIControlEvent вызвал его.Либо зарегистрируйте отдельные методы для каждого типа событий (рекомендуемое решение), либо создайте свой собственный подкласс UIControl и заставьте его вести себя по-разному.

0 голосов
/ 16 декабря 2011

Я думаю, что вы должны дать другой тег для всей этой кнопки.

- (IBAction)uibuttonEvent:(id)idSender {
    int iTag =  [sender tag];
}

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

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

...