2011-01-21 3 views
1

Запуск на iPad. Я представляю контроллер вида. Он использует MonoTouch.Dialog для отображения некоторых полей ввода текста, кнопок и т. Д. При нажатии текстового поля клавиатура появляется. При нажатии вне текстового поля я хотел бы убрать клавиатуру, но она не исчезнет. Я читал, что отклонение клавиатуры невозможно при представлении в виде FormSheet? Это верно?Как убрать клавиатуру в случае модального просмотра?

Вот мой код. Селектор вызывается, но клавиатура остается там, где она есть. Поскольку текстовые поля создаются динамическими системами, я не могу/не хочу вызывать ResignFirstResponder() для каждого из них, но вместо этого позволить представлению стать первым ответчиком, а затем уйти в отставку.

public override void ViewDidLoad() 
{ 
    base.ViewDidLoad (); 
UITapGestureRecognizer oTapRecognizer = new UITapGestureRecognizer (); 
oTapRecognizer.AddTarget(this, new MonoTouch.ObjCRuntime.Selector("ViewTappedSelector:")); 
this.View.AddGestureRecognizer (o); 
} 

[Export("ViewTappedSelector:")] 
public void ViewTapped (UIGestureRecognizer sender) 
{ 
    this.View.BecomeFirstResponder (); 
    this.View.ResignFirstResponder (); 
} 
+0

Как создаются текстовые поля? Может ли представление стать первым ответчиком? –

+0

Текстовые поля создаются MT.Dialog. Я думаю, что все может стать первым ответчиком ...? Пока он предлагает мне метод BecomeFirstResponder(), я называю это. :-) – Krumelur

ответ

0

Я прочитал, что отклоняя клавиатуры не представляется возможным при представлении в FormSheet?

Это правильно. Если вы хотите отключить клавиатуру, показывая модальное представление, вы можете представить ее с помощью другого модального стиля, и вы можете изменить размер представления, чтобы взять тот же фрейм, что и в виде листа.

+0

Но тогда это kludge. Изменение размеров модалов не предназначено и возможно только после того, как они станут видимыми. Но тогда я в порядке с этим поведением. Если Стив решил, что так будет, я буду жить с ним. :-) – Krumelur

+0

Еще одно сообщение: я только что понял, что клавиатура iPad даже имеет кнопку (внизу справа), чтобы отменить ее вручную. – Krumelur

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