2011-02-04 9 views
1

私のビューにUITextView(InterfaceBuilderから)があります。これにはUIScrollViewが含まれています。UITextViewのUIScrollViewメソッドをオーバーライドします。touchEnded

私は自分のサブメニューを閉じなければならないので、私はUITextView内のタッチイベントを検出する必要があります。

Apple UITextViewはUIScrollViewにあり、UIScrollViewのタッチを検出するために、UITextViewのUIScrollViewのUITouch Funktionをオーバービューする必要があります。

どのように私はこれを行うことができますか?

答えて

3

UITextViewはUIScrollViewのサブクラスです。これは、「UIScrollViewを含んでいますか?

ここにはいくつかのアプローチがあります。あなたはと懸念しているタッチがテキストビューの最初のタッチがあるため、編集を始めている場合は、その代理人になることができ、このメソッドを実装:あなたが発生した任意のタップを認識する必要がある場合は

- (void)textViewDidBeginEditing:(UITextView *)textView 

を最初の編集タップだけでなく、テキストビュー内でUITapGestureRecognizerを使用してタップを聞くことができます。このような何か:私は実際にこのシナリオをテストしていない

- (void)textViewTapped:(id)sender { 
    // dismiss your menu or whatever 
} 

注意を、それが動作するはずです:

// in the method where you configure your view 
UITapGestureRecognizer *tap = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(textViewTapped:)] autorelease]; 
// assuming textView is pointing to your UITextView 
[textView addGestureRecognizer:tap]; 

そして、あなたのクラスの別の場所でアクションメソッドを実装します。ジェスチャー認識は素晴らしいです。

+0

IBのUITextView上にUIScrollViewが存在するため、これは機能しませんでした。だから私はUIWindowのtouchesBeganメソッドをovverideし、私のセレクターに送信しなければならなかった。 – brokedid

関連する問題