MonoTouch.Dialog: Отмена клавиатуры при касании в любом месте DialogViewController

NOTE: There are two similar SO questions (1) (2), но ни один из них не дает ответа.

TL;DR: How can one dismiss the keyboard in a MonoTouch.Dialog by letting the user touch any empty space in the view?

Я пишу приложение, используя MonoTouch.Dialog и UITabBarController. Одна из моих вкладок "Настройки" ...

Settings screen

Когда пользователь начинает печатать, клавиатура закрывает панель вкладок ...

enter image description here

Используя MonoTouch.Dialog, единственный способ отклонить клавиатуру - перейти к последнему полю и нажать кнопку «Возврат». ключ. Учитывая тот факт, что пользователь не может нажимать на любую вкладку, пока клавиатура не исчезнет, я хотел бы сделать это лучше. А именно, чтобы уволить, если пользователь нажимает в любом месте на экране.

Без MonoTouch.Dialog это совсем несложно: просто переопределить TouchesBegan и вызвать EndEditing. Но это не работает с MT.D. Я пытался создать подкласс DialogViewController и переопределить там TouchesBegan, но он не работает. Я в настоящее время в растерянности.

Или, мне интересно, мне лучше отказаться от панели вкладок, чтобы я мог использовать UINavigationController с & quot; Назад & quot; кнопка сверху, которая не будет скрыта клавиатурой?

Ответы на вопрос(4)

Ваш ответ на вопрос