2010-08-11 6 views
8

Eventuali duplicati:
MonoTouch.Dialog: Dismissing keyboard by touching anywhere in DialogViewControllerPosso ignorare la tastiera dell'iPhone toccando lo sfondo di DialogViewController (MonoTouch.Dialog)?

sto usando DialogViewController da MonoTouch.Dialogs. Mi piacerebbe essere in grado di ignorare la tastiera facendo clic sullo sfondo della finestra di dialogo.

Solitamente utilizzo la tecnica di riempimento della vista con un grande pulsante personalizzato e posizionandolo dietro tutti gli altri elementi. Tuttavia, non posso farlo funzionare su DialogViewController. L'ho fatto in LoadView e ha bloccato tutti gli altri controlli.

Esiste un modo relativamente semplice per ottenere ciò che voglio?

risposta

7

In controller della vista:

public override void TouchesBegan (NSSet touches, UIEvent evt) 
    { 
     base.TouchesBegan (touches, evt); 

     myField.ResignFirstResponder(); 
    } 

Edit: Da quello che ho letto, è possibile utilizzare l'evento touchesBegan per la visualizzazione secondaria cella invece della tabella stessa. Non sono sicuro che funzioni. Buona fortuna :)

+0

+1 per avere effettivamente in .NET :) –

+1

1 in quanto è un approccio ordinato al problema più generale. Tuttavia, non risolve il mio problema con MonoTouch.Dialog. Questo discende da UITableViewController, che non sembra ricevere l'evento TouchesBegan. – dommer

+0

-1 Non funziona per MonoTouch.Dialog, che è la domanda originale. – CDeutsch

1

miguel.de.icaza ha risposto a questa domanda in un'altra discussione: https://stackoverflow.com/a/10864640/1134836.

La sua soluzione:

var tap = new UITapGestureRecognizer(); 
    tap.AddTarget (() =>{ 
     dvc.View.EndEditing (true); 
    }); 
    dvc.View.AddGestureRecognizer (tap); 
+0

Puoi aiutarci segnalando la domanda come un duplicato, invece di pubblicare una risposta duplicata a una domanda doppia. –

+0

Non l'ho mai fatto prima. Presumo che sia solo il link della bandiera sotto la domanda? – valdetero

+0

Sì. Usa l'opzione "Altro" nella finestra di dialogo di segnalazione. –

Problemi correlati