12

UIWebView をタッチしたままにすると表示される虫めがねを無効にするにはどうすればよいですか? ユーザーの操作を無効にしたくありませんが、WebView でそのズーム グラスを表示したくありません。何か案は?

4

5 に答える 5

8

いいえ、ルーペは選択と表裏一体です。無効にするには、選択を完全に無効にする必要があります (これを-webkit-user-select: none行うには を使用できます)。

于 2011-08-23T06:58:25.400 に答える
7

受け入れられた解決策が私にはうまくいかなかったので、私は他のオプションを探す必要があり、私はそれを見つけました。
Appleがこのテクニックを承認するかどうかはわかりません。あなた自身の恐れと危険でそれを使ってください。

(私たちが拒否されたわけではありません。Appleはあなたが内部をいじることをそれほど気にしていないと思いますUIWebViewが、警告されます。)

私がしたことは、再帰的にUIWebViewサブビューをウォークダウンし、それらを列挙することでしたgestureRecognizers。に遭遇するたびにUILongPressGestureRecognizer、それをに設定enabledNOます。

これにより、虫眼鏡が完全になくなり、デフォルトの長押し機能が明らかに無効になります。

iOSは、ユーザーがテキストの編集を開始するたびに、これらのジェスチャ認識機能を再度有効化(または再作成)するようです。
ええと、テキストフィールドに虫眼鏡を使用してもかまわないので、すぐに無効にしません。

代わりにblur、テキスト要素でイベントが発生するのを待ち、イベントが発生したら、サブビューツリーを再度ウォークします。
そのように単純で、それは機能します。

于 2012-08-29T12:20:17.963 に答える
3

使い方がわからないので-webkit-user-select: none、他の方法を探しました。そして、このUIWebView のコンテキスト メニューのカスタマイズに出くわし、それを と組み合わせました-webkit-user-select: none

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
   [webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitUserSelect='none';"];
}
于 2012-02-24T06:57:53.850 に答える