2011-03-11 11 views
1
@interface MyBrowser: UIViewController <UIWebViewDelegate>{ 
      IBOutlet UIWebView *webView; 
} 
@property(nonatomic,retain) IBOutlet UIWebView *webView; 
@end 

私はクラスと、私が使用することでのUIWebView持っている - 私は私のウェブブラウザに触れtouchesBeganイベントを...しかし、私はのでできませんその出来事は起きなかった...なぜその出来事が起きなかったのか、誰かがそれを得るために何をしなければならないのかを知っている人!iphoneでUIWebBrowserにtouchesBeganイベントを立ち上げる方法

+0

.mファイルに 'self.webView.delegate = self'を設定してみてください。 –

答えて

0
#import <UIKit/UIKit.h> 

@protocol TapDetectingWindowDelegate 
- (void)userDidTapWebView:(id)tapPoint; @end 

@interface TapDetectingWindow : UIWindow { 
    UIView *viewToObserve; 
    id <TapDetectingWindowDelegate> controllerThatObserves; } @property (nonatomic, retain) UIView 
*viewToObserve; @property (nonatomic, assign) id <TapDetectingWindowDelegate> controllerThatObserves; 

@end 

#import "TapDetectingWindow.h" 
@implementation TapDetectingWindow 
@synthesize viewToObserve; 
@synthesize controllerThatObserves; 
- (id)initWithViewToObserver:(UIView *)view andDelegate:(id)delegate { 
    if(self == [super init]) { 
     self.viewToObserve = view; 
     self.controllerThatObserves = delegate; 
    } 
    return self; 
} 
- (void)dealloc { 
    [viewToObserve release]; 
    [super dealloc]; 
} 
- (void)forwardTap:(id)touch { 
    [controllerThatObserves userDidTapWebView:touch]; 
} 
- (void)sendEvent:(UIEvent *)event { 
    [super sendEvent:event]; 
    if (viewToObserve == nil || controllerThatObserves == nil) 
     return; 
    NSSet *touches = [event allTouches]; 
    if (touches.count != 1) 
     return; 
    UITouch *touch = touches.anyObject; 
    if (touch.phase != UITouchPhaseEnded) 
     return; 
    if ([touch.view isDescendantOfView:viewToObserve] == NO) 
     return; 
    CGPoint tapPoint = [touch locationInView:viewToObserve]; 
    NSLog(@"TapPoint = %f, %f", tapPoint.x, tapPoint.y); 
    NSArray *pointArray = [NSArray arrayWithObjects:[NSString stringWithFormat:@"%f", tapPoint.x], 
          [NSString stringWithFormat:@"%f", tapPoint.y], nil]; 
    if (touch.tapCount == 1) { 
     [self performSelector:@selector(forwardTap:) withObject:pointArray afterDelay:0.5]; 
    } 
    else if (touch.tapCount > 1) { 
     [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(forwardTap:) object:pointArray]; 
    } 
} 
@end 

見つかり最高ポストである:

@interface MiniBrowser : UIViewController <UIWebViewDelegate, TapDetectingWindow>{ IBOutlet UIWebView *webView; } 

@property(nonatomic,retain) IBOutlet UIWebView *webView; 

@end 

しかし、私が欲しいときアプリケーションの注釈を実行するにはTapDetectingWindowのプロトコル宣言が見つかりましたエラーが表示されます!どういう意味ですか ???私は何をしなければならないのですか?

0

これは私が、私はこのコードを追加したとき、私は自分のアプリケーションにこのコードを追加that-

http://mithin.in/2009/08/26/detecting-taps-and-events-on-uiwebview-the-right-way

+0

私はこの例のようにしようとしますが、アプリケーションを実行したいときに、TapDetectingWindowのプロトコル宣言を見つけることができませんエラーが表示されます! –

+0

このエラーを修正するにはどうすればよいですか? –

関連する問題