2012-07-20 1 views
6

Durante il rilevamento delle modifiche funziona con UIControlEventValueChanged - Devo rilevare tocchi anche su segmenti selezionati.come rilevare i tocchi su uisegmentedcontrol - anche sul segmento selezionato?

ho cercato

[onOffSC addTarget:self 
      action:@selector(segmentedControlPushed) 
    forControlEvents:UIControlEventAllTouchEvents]; 

Ma questo spara nulla.

C'è un modo per rilevare i tocchi su un segmento selezionato?

MODIFICA - senza dover creare una nuova sottoclasse. ps anche il sistema di riconoscimento gesto non accetta la segmentcontrol quando si cerca di trascinare lì

Molte grazie

risposta

2

Penso che questo funzionerà

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    NSInteger oldValue = self.selectedSegmentIndex; 
    [super touchesBegan:touches withEvent:event]; 
    if (oldValue == self.selectedSegmentIndex) 
     [self sendActionsForControlEvents:UIControlEventValueChanged]; 
} 
+0

per questo devo creare una nuova sottoclasse ... - Ho dimenticato di menzionarlo inizialmente – user387184

+0

Dovresti essere in grado di connettere Tap Gesture Recognizer a SegmentedControl in IB, quindi connetti il ​​tuo metodo - (IBAction) segmentedControlTouched: (id) mittente. Sono abbastanza sicuro che questo metodo verrà attivato ogni volta che tocchi SegmentedControl. –

+0

..come ho detto sopra, per qualche ragione questo non funziona - forse sto usando Xcode 4.3 ???? – user387184