2012-03-08 1 views
1

私はUIWebViewを持っています。これは静的コンテンツを表示し、コントローラを介してさまざまなスワイプジェスチャに反応します。UIWebViewがテキストの選択を開始するときを検出する方法は?

テキスト選択が無効になっていますが、現在はテキスト選択を許可してカスタムコンテキストメニューを表示するための新機能に取り組んでいます。

スワイプジェスチャーを無効にできるように、テキスト選択がアクティブなときを検出できるようにする必要があります。

私が考えることができる唯一の方法は、スワイプハンドラメソッドでJSを使用して選択されたテキストがあるかどうかを確認することです。他のアイデア?誰もこれをより良くする方法を知っていますか?

ありがとうございました。

答えて

1

Rangyライブラリを使用してジェスチャ認識機能を無効にして有効にする方法は次のとおりです。よく働く。

- (BOOL) isSelectionActive 
{ 
    NSString * resultStr = [self.contentView stringByEvaluatingJavaScriptFromString: 
          @"rangy.getSelection().isCollapsed"]; 

    NSLog(@"resultStr: %@", resultStr); 

    if ([resultStr isEqualToString:@"true"]) { 
     return NO; 
    } 
    else { 
     return YES; 
    } 
} 
6

ユーザーがmenuViewControllerがアップ示されるテキストを選択..あなたはではメニュー非表示を検出するためにあなたのViewController

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(menuShown) name:UIMenuControllerDidShowMenuNotification object:nil]; 

同じ場合に通知を追加することを検出することができます。

1

「長押しジェスチャ認識」を使用してUIWebViewにバインドすることができます。テキストが選択される前に、ユーザーがテキストを押し続けなければならないタイミングに調整することができます。

関連する問題