2009-09-03 13 views
6

Napisałem podklasę UIControl, która śledzi pewną liczbę gestów, które mnie interesują. W dokumentacji do wyliczenia UIControlEvents podano, że istnieje szereg numerów zdarzeń o nazwie UIControlEventApplicationReserved, które są "dostępne do użycia aplikacji". Czy to oznacza, że ​​mogę używać tego zakresu numerów do własnych niestandardowych wydarzeń?Czy możesz tworzyć zdarzenia niestandardowe za pomocą UIControlEventApplicationReserved?

Jeśli tak, czy ktoś może mi powiedzieć, jak wywołać zdarzenia? Oczywisty sposób, w jaki mogę to zrobić, to:

enum { 
    ... 
    MyCustomEvent = 65, 
    ... 
}; 

... 

UIEvent* customEvent; 

... 

for (id target in [self allTargets]) 
{ 
    for (NSString* action in [self actionsForTarget:target forControlEvent:MyCustomEvent]) 
    { 
      [self sendAction:NSSelectorFromString(action) to:target forEvent:customEvent]; 
    } 
} 

Czy to zadziała?

+0

OK, wiem, że to stare pytanie, ale czy zrobiłeś jakiekolwiek postępy w tej sprawie? –

Odpowiedz

20

Okay, to stary temat, ale zamierzam dodać moją odpowiedź na to pytanie. Nie mogę powiedzieć na pewno, czy możesz użyć tej maski do swojej aplikacji, mimo że podejrzewam.

Ale mogę powiedzieć z całą pewnością, jak z niego korzystać. Na przystawkę maski tej wartości bitów w pozycji 24, 25, 26 i 27. Należy napisać enum własnego, który używa tylko ten bitów, na przykład:

enum { 
    MyPrimaryActionEvent = 1 << 24, 
    MySecondaryActionEvent = 1 << 25, 
}; 

Gdy to zrobisz możesz zarejestrować się na nich akcje:

[myButton addTarget:self action:@selector(someAction:) forControlEvents: MyPrimaryActionEvent]; 

Za każdym razem, gdy zostanie wywołana akcja MyPrimaryActionEvent, self otrzyma komunikat someAction :. Teraz, jak wywołać to działanie, zależy od samego przycisku. W swoim własnym UIControl podklasy można wywołać zmiany następujące:

[self sendActionsForControlEvents:MyPrimaryActionEvent]; 

Ten wyśle ​​wszystkie działania wszystkich zarejestrowanych dla celów imprezy MyPrimaryActionEvent. I jesteś skończony.

Powiązane problemy