2012-05-08 21 views
6

Próbuję dodać UILongPressGestureRecognizer do jednego z UITextField na stronie, ale nie wywołuje metody selektora, gdy Long Press UiTextField. Dodałem go do UItextField Ale nie wywołuje metody Selector, gdy długo naciśnij pole TextField, ale pokazuje Lupa na polu.Jak dodać UILongPressGestureRecognizer do UITextField?

[self.tfCustomerStreet addGestureRecognizer:LongPressgesture]; 

Ale działa dobrze i wywołaj metodę selektora, jeśli dodaję ją do widoku.

[[self view] addGestureRecognizer:LongPressgesture]; 

kod inicjalizacji w viewDidLoad

UILongPressGestureRecognizer *LongPressgesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(LongPressgesture:)]; 
    [LongPressgesture setMinimumPressDuration:2.0]; 

.

// Long press gesture reconizer 
- (void)LongPressgesture:(UILongPressGestureRecognizer *)recognizer 
{ 
    if (recognizer.state == UIGestureRecognizerStateEnded) { 
     NSLog(@"Long press Ended ................."); 
    } 
    else { 
     NSLog(@"Long press detected ....................."); 
    }   
} 

Proszę mi powiedzieć, jak mogę to zrobić z UITextField.

Odpowiedz

8

jeśli usuniesz [LongPressgesture setMinimumPressDuration:2.0]; to działa .. ponieważ gest zakładka zostanie wezwany do rozpoczęcia Edycja textField ... lub po prostu wdrożyć tę funkcję delegata gest

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 
{ 
    return YES; 
} 

powracającego TAK tej metody jest gwarantowana aby umożliwić równoczesne rozpoznawanie.

Enjoy :)

+0

dzięki Malek .. jej rozpocząć pracę nad usunięciem [LongPressgesture setMinimumPressDuration: 2,0]; ale nie działa, jeśli dodasz wspomniany kod. ale problem rozwiązany .. dzięki :) – Azhar

+0

jesteś mile widziany .. ale do drugiej sloution dodałeś 'UIGestureRecognizerDelegate' w .h? –

+1

również musisz ustawić 'LongPressgesture.delegate = self;' –