2012-04-10 8 views
0

可能性の重複:
MonoTouch.Dialog: Dismissing keyboard by touching anywhere in DialogViewControllerMonoTouch.Dialogでセルの外側に触れることによってキーボードを消すことはできますか?

私は(私は 'セクションにあると仮定)テーブルセルの外側をタッチすると、touchesBeganメソッドは、私がいわゆるれないことに気づきましたEndEditingまたはResignFirstReponderに電話をかけることはできません。

私は複数行の入力要素を作成しています。このため、戻りキーは「戻る」ではなく新しい行に移動します。これは意図された動作です。しかし、私はキーボードを却下する方法がありません。

iPhoneのメニュー(一般 - >キーボード - >ショートカット)の設定や認証情報を入力するときに、外側の領域に触れることがレスポンダを辞退しないことが気づきました。これは、これがiOS全体の制限であることを意味していますか(または、Appleはこれらのインスタンスにはうまく適合しませんでした)?

どうすればよいですか?

あり、ここで同じ質問は、私が集まる何、ですが、誰もが有効な答えを思いついたん:年にたぶん
Can I dismiss the iPhone keyboard by touching the background of DialogViewController (MonoTouch.Dialog)?

半の誰かがそれを解決しましたか?

+0

は、次のような...ではなく、「次へ」ボタンを表示することができますか? – xanadont

+0

私はそれを試していない。次の/完了ボタンがEnterキーとは異なる機能を持つかどうかは分かりませんでした。 – valdetero

答えて

1

miguel.de.icazaが別のスレッドでこの質問に回答しました: https://stackoverflow.com/a/10864640/1134836

彼の解決策:あなたはSafariでWebフォームに記入しているとき

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

また、dvc.CancelsTouchesInView = falseを追加する必要があります。それ以外の場合は、ページ上の他のすべてのクリックがキャンセルされます。 – benpage

0

私はあなたが2つのオプションがあると思う:

  • を私が最初に考え

を却下するビューの背景にタッチイベントをフックアップどこかに「完了」ボタン

  • を入れてSafariの機能であるため、オプションが優れています。

    キーボードの上部にツールバーを取り付けて、Safariの動作をInputAccessoryViewでシミュレートすることができます。以下は、Obj-Cでこれを行う例です(簡単に移植できるはずです):http://gabriel-tips.blogspot.com/2011/05/input-accessory-view-how-to-add-extra.html

    しかし、画面の不動産が逼迫していると、レイアウトにはうまくいかない場合があります。その場合は、オプション#2を選択してください。

  • 関連する問題