2010-08-11 2 views
8

Можно создать дубликат:
MonoTouch.Dialog: Dismissing keyboard by touching anywhere in DialogViewControllerМогу ли я отменить клавиатуру iPhone, коснувшись фона DialogViewController (MonoTouch.Dialog)?

Я использую DialogViewController из MonoTouch.Dialogs. Я хочу, чтобы убрать клавиатуру, щелкнув по фону диалога.

Обычно я использую технику заполнения вида с помощью большой пользовательской кнопки и размещения ее позади всех остальных элементов. Однако я не могу выполнить эту работу в DialogViewController. Я сделал это в LoadView, и он просто заморозил все остальные элементы управления.

Есть ли относительно простой способ достичь того, что я хочу?

ответ

7

В видовом контроллере:

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

     myField.ResignFirstResponder(); 
    } 

Edit: Из того, что я читал, вы можете использовать событие TouchesBegan для клеток подвида вместо самой таблицы. Я не уверен, что это работает. Удачи :)

+0

+1 за фактически иметь его в .net :) –

+1

+1, как это аккуратный подход к более общей проблеме. Однако это не решает мою проблему с MonoTouch.Dialog. Это происходит от UITableViewController, который, похоже, не получает событие TouchesBegan. – dommer

+0

-1 Не работает для MonoTouch.Dialog, который задал первоначальный вопрос. – CDeutsch

1

miguel.de.icaza ответил на этот вопрос в другой теме: https://stackoverflow.com/a/10864640/1134836.

Его решение:

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

Вы можете помочь нам, поставив вопрос как дубликат, вместо того, чтобы публиковать дублированный ответ на дублированный вопрос. –

+0

Я никогда раньше этого не делал. Я предполагаю, что это просто ссылка на флаг под вопросом? – valdetero

+0

Да. Используйте опцию «Другое» в диалоговом окне флажка. –

Смежные вопросы