2010-08-11 12 views
8

Duplicar posible:
MonoTouch.Dialog: Dismissing keyboard by touching anywhere in DialogViewController¿Puedo descartar el teclado de iPhone tocando el fondo de DialogViewController (MonoTouch.Dialog)?

estoy usando DialogViewController de MonoTouch.Dialogs. Me gustaría poder descartar el teclado haciendo clic en el fondo del cuadro de diálogo.

Normalmente utilizo la técnica de llenar la vista con un gran botón personalizado y colocarlo detrás de todos los demás elementos. Sin embargo, no puedo hacer que esto funcione en DialogViewController. Hice esto en LoadView y simplemente congeló todos los otros controles.

¿Hay una manera relativamente directa de lograr lo que quiero?

Respuesta

7

En controlador de vista:

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

     myField.ResignFirstResponder(); 
    } 

Editar: Por lo que he leído, se puede utilizar el evento touchesBegan para la subvista celda en lugar de la propia tabla. No estoy seguro de que funcione. Buena suerte :)

+0

+1 para realmente tener en .net :) –

+1

1, ya que es una aproximación ordenada al problema más general. Sin embargo, no resuelve mi problema con MonoTouch.Dialog. Esto desciende de UITableViewController, que no parece recibir el evento TouchesBegan. – dommer

+0

-1 No funciona para MonoTouch.Dialog que es lo que la pregunta original estaba haciendo. – CDeutsch

1

miguel.de.icaza respondió esta pregunta en un hilo diferente: https://stackoverflow.com/a/10864640/1134836.

Su solución:

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

Puede ayudarnos marcando la pregunta como un duplicado, en lugar de publicar una respuesta duplicada a una pregunta duplicada. –

+0

Nunca he hecho eso antes. Supongo que es solo el enlace de la bandera bajo la pregunta? – valdetero

+0

Sí. Use la opción "Otro" en el diálogo de marcado. –

Cuestiones relacionadas