2011-01-21 7 views
1

iPadで実行しています。 私はモーダルでView Controllerを提示しています。 MonoTouch.Dialogを使用して、テキスト入力フィールド、ボタンなどを表示します。 テキストフィールドをタップすると、キーボードがポップアップします。テキストフィールドの外側をタップすると、キーボードを却下したいが、それは消えないだろう。私はFormSheetとしてプレゼンテーションを行うときキーボードを無効にすることはできないと読んでいますか?あれは正しいですか?モーダルビューの場合にキーボードを解除するにはどうすればよいですか?

ここに私のコードです。セレクタは呼び出されますが、キーボードはそのままの位置にとどまります。テキストフィールドは作成されたdynamicallなので、私は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として提示したときに、キーボードを却下することは不可能であることを読んで?

これは正しいです。モーダル表示を表示しているときにキーボードを閉じるには、別のmodalStyleを使用してキーボードを表示し、同じフレームをフォームシートとして使用するように表示のサイズを変更できます。

+0

しかし、それは厄介です。モーダルのサイズ変更は意図されておらず、可視になった後にのみ可能です。しかし、私はこの動作でうまくいく。スティーブがそのように決めたら、私はそれと一緒に暮らすだろう。 :-) – Krumelur

+0

別のサイドノート:私はちょうどiPadのキーボードにも手動でそれを解除するボタン(右下)があることに気付いた。 – Krumelur

関連する問題