2010-12-04 10 views
3

Ich erstellte eine Ansicht mit einem UIPickerView, die angezeigt wird, wenn Benutzer eine Taste drücken.Intercept Tap Ereignis in gegebenem Zustand

Jetzt muss ich UIPickerView verschwinden lassen, wenn Benutzer irgendwo auf dem Bildschirm tippen (offensichtlich aus UiPickerView).

Wie kann ich diesen Tipp nur abfangen, wenn UIPickerView sichtbar ist? Vielen Dank!

+0

Sie brauchen das '[ios iphone]' nicht am Anfang Ihres Fragentitels. Dafür sind Tags da. ;) – esqew

+0

Danke esqew. Ich ändere den Titel. – MatterGoal

Antwort

2

Sie können einen UIGestureRecognizer an die Hauptansicht anhängen. Sobald jemand irgendwo auf die Hauptansicht klickt, können Sie ein Ereignis erhalten und Ihr UIPickerView entfernen. Schreiben Sie so etwas in Ihnen Viewcontroller:

UITapGestureRecognizer *tgr = [[UITapGestureRecognizer alloc] 
         initWithTarget:self action:@selector(viewWasTapped)]; 
[self.view addGestureRecognizer:tgr]; 

In Ihrem viewWasTapped Methode finden Sie alle Hähne auf der Viewcontrollers Ansicht erhalten.

Hoffe, dass hilft.

+0

Es ist nur teilweise aufgelöst ... ich bin in der Lage, eine Erkennung in einer Ansicht hinzuzufügen. Mein Problem ist, dass ich den Erkenner umschalten muss. Wenn uipicker view sichtbar ist, füge ich es hinzu .... wenn es entfernt wird, entferne ich recognizer auch. Ich würde gerne wissen, ob dies eine gute Methode ist oder nicht. – MatterGoal

+0

Beachten Sie, dass der Erkenner in der Ansicht _main_ platziert werden muss. das ist die Ansicht, die den gesamten Bildschirm umfasst. –