2010-12-21 10 views
2

私のアプリでSafariと同じ動作をしたいと思っています。 Safariでは、キーボードが表示されているときに編集フィールドの外にあるタップがキーボードを非表示にします。 しかし、私自身のアプリにはUIWebViewがありますが、デフォルトではそうではありません。だから私はどのように私のアプリにこの動作を得ることができますか?UIWebViewをタップしてキーボードを隠す

私はUIGestureRecognizerを追加しようとしましたが、決してまたは常に(shouldRecognizeSimultaneouslyWithGestureRecognizer:に応じて)発生しません。だからUIWindowsendEvent:を上書きしようとしました。しかし、それはまた、私は常にタップを取得するという問題があります。例えば、編集中のテキストしたがって、テキストの選択はできません。

--edit

Safariではこの動作がデフォルトではないことが判明しました。 Google検索ページでのみ、この方法です。したがって、この問題のJavaScriptソリューションが必要です。

+0

これを試してみてください: [書き込みiOS4をコードは、iPhoneのキーボードを非表示にする](http://www.techotopia.com/index.php/ Writing_iOS_4_Code_to_Hide_the_iPhone_Keyboard)。それは私のために働いた=) –

+0

あなたは 'resignFirstResponder'を使用する必要があります –

答えて

-2

サブクラスのWebビューと

を上書き - (無効)touchesBegan:(NSSet *)はwithEvent触れる:(たUIEvent *)イベントを。 Goog luck。

+0

UIViewのサブクラスはそのメッセージを取得しません。 – V1ru8

+1

はい、あります。あなたが与える前にいくつかのテストと研究をする必要があります。 UIWebViewそれはdose'nt –

+0

まあ私はそれを実装し、それはしませんでした。しかし、とにかくそれがしたら。まず第一に、UIWebViewをサブクラス化してはならず、次に問題を解決しません。 – V1ru8

3

のWebViewがスクロールされたときにキーボードを隠す:

self.webView.scrollView.keyboardDismissMode =UIScrollViewKeyboardDismissModeOnDrag; 
関連する問題