NOTA: Hay dos preguntas similares SO (1)(2), pero ninguno de ellos proporciona una respuesta.MonoTouch.Dialog: Descartando teclado tocando en cualquier parte DialogViewController
TL; DR: ¿Cómo se puede descartar el teclado en un MonoTouch.Dialog al permitir que el usuario toque cualquier espacio vacío en la vista?
Estoy escribiendo una aplicación usando MonoTouch.Dialog y un UITabBarController. Una de mis pestañas es "Configuración" ...
Cuando el usuario comienza a escribir, el teclado obstruye la barra de pestañas ...
Uso MonoTouch.Dialog, el único La forma de cerrar el teclado es ir al último campo y presionar la tecla "regresar". Teniendo en cuenta el hecho de que el usuario no puede presionar ninguna pestaña hasta que el teclado se haya ido, me gustaría una mejor manera de hacerlo. A saber, para descartar si el usuario toca en cualquier otro lugar en la pantalla.
Sin MonoTouch.Dialog, es muy fácil: simplemente anular touchesBegan y llame EndEditing. Pero esto no funciona con MT.D. Intenté crear una subclase de DialogViewController y sustituir ToquesBegan allí, pero no funciona. Actualmente estoy perdido.
O, me pregunto, ¿sería mejor que abandone la tabbar para poder usar un UINavigationController con un botón "Atrás" en la parte superior, que no se ocultará por el teclado?
Eso es brillante. Después de leer su respuesta a http://stackoverflow.com/questions/10832014/using-decelerationended-interferes-with-other-callbacks, me di cuenta de que mi solución probablemente causaría problemas en el futuro. No solo es mejor el tuyo, ya que elimina esa posibilidad, sino que también proporciona la funcionalidad exacta que estaba buscando. ¡Un millón de gracias! –
también debe agregar dvc.CancelsTouchesInView = false; De lo contrario, esto cancelará todos sus otros clics en la página. – benpage
agregar tap.CancelsTouchesInView = false; para evitar que TapGestureRecognizer se cancele haciendo clic en todos los elementos. –