0

重複の可能性:
MonoTouch.Dialog:DialogViewControllerの任意の場所にタッチしてキーボードを閉じる

テーブルセルの外側(「セクション」だと思います)に触れると、touchesBeganメソッドが呼び出されないため、EndEditingまたはを呼び出すことができないことに気付きましResignFirstReponderた。

複数行のエントリ要素を作成しています。このため、リターンキーは「戻る」のではなく新しい行に移動します。これは意図された動作です。しかし、そのときはキーボードを閉じる方法がありません。

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

とにかくこれを行うことはありますか?

ここに私が集めたものと同じ質問がありますが、誰も有効な答えを思いつきませんでした:
DialogViewController(MonoTouch.Dialog)の背景に触れてiPhoneキーボードを閉じることはできますか?

たぶん1年半で誰かがそれを解決しましたか?

4

2 に答える 2

1

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

彼の解決策:

   var tap = new UITapGestureRecognizer ();
   tap.AddTarget (() =>{
       dvc.View.EndEditing (true);
   });
   dvc.View.AddGestureRecognizer (tap);
于 2012-06-19T16:50:16.917 に答える
0

2つの選択肢があると思います。

  • 「完了」ボタンをどこかに置きます
  • ビューの背景にあるタッチイベントをフックして閉じます

最初のオプションはSafariが行うことなので、より良いと思います。

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

ただし、画面のスペースが狭い場合は、レイアウトでは機能しない可能性があります。その場合はオプション#2を選択してください。

于 2012-04-17T17:42:34.273 に答える