我是 iPhone 开发者的新手,
触摸捕捉窗口.h
@interface TouchCapturingWindow : UIWindow
{
NSMutableArray *views;
@private
UIView *touchView;
}
- (void)addViewForTouchPriority:(UIView*)view;
- (void)removeViewForTouchPriority:(UIView*)view;
@end
触摸捕捉窗口.m
(void)addViewForTouchPriority:(UIView*)view
{
if ( !views ) views = [[NSMutableArray alloc] init];
[views addObject:view];
}
- (void)removeViewForTouchPriority:(UIView*)view
{
if ( !views ) return;
[views removeObject:view];
}
- (void)sendEvent:(UIEvent *)event
{
UITouch *touch = [[event allTouches] anyObject];
if (touch.phase == UITouchPhaseBegan)
{
for ( UIView *view in views )
{
if ( ![view isHidden] && [view pointInside:[touch locationInView:view] withEvent:event] )
{
touchView = view;
[touchView touchesBegan:[event allTouches] withEvent:event];
break;
}
}
}
else if (touch.phase == UITouchPhaseMoved)
{
if ( touchView )
{
[touchView touchesMoved:[event allTouches] withEvent:event];
}
}
else if (touch.phase == UITouchPhaseCancelled)
{
if ( touchView )
{
[touchView touchesCancelled:[event allTouches] withEvent:event];
touchView = nil;
}
}
else if (touch.phase == UITouchPhaseEnded)
{
if ( touchView )
{
[touchView touchesEnded:[event allTouches] withEvent:event];
touchView = nil;
}
}
[super sendEvent:event];
}
@end
下载页面.m
- (void)viewDidLoad
{
[super viewDidLoad];
CGRect webFrame = CGRectMake(0.0, 0.0, 500.0, 500.0);
webView = [[UIWebView alloc] initWithFrame:webFrame];
[webView setBackgroundColor:[UIColor greenColor]];
NSString *urlAddress = @"http://stackoverflow.com/";
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webView loadRequest:requestObj];
[self.view addSubview:webView];
NSString *t= [webView stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"];
NSLog(@"selected text=%@",t);
}
- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
NSLog(@"Touches began");
}
- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event
{
NSLog(@"Touches moved");
}
- (void) touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event
{
NSLog(@"Touches ended");
}
- (void) touchesCancelled:(NSSet*)touches withEvent:(UIEvent*)event
{
NSLog(@"Touches cancelled");
}
任何帮助将不胜感激。