//MyImageView.h
#import <Cocoa/Cocoa.h>
@interface MyImageView : NSImageView
{
id myDelegate;
}
@property(assign)id delegate;
- (id)initWithDelegate:(id)delegate;
@end
@protocol MyImageViewDelegate
-(void)mouseEnteredImageView:(NSImageView*)imageView;
-(void)mouseExitedImageView:(NSImageView*)imageView;
@end
//MyImageView.m
#import "MyImageView.h"
@implementation MyImageView
@synthesize delegate = myDelegate;
- (id)initWithDelegate:(id)delegate
{
self = [super init];
if (self)
{
self.delegate = delegate;
}
return self;
}
- (void)viewDidMoveToWindow
{
int options = NSTrackingMouseEnteredAndExited | NSTrackingActiveAlways | NSTrackingInVisibleRect;
NSTrackingArea *ta = [[NSTrackingArea alloc] initWithRect:NSZeroRect
options:options
owner:self
userInfo:nil];
[self addTrackingArea:ta];
[ta release];
}
- (void)mouseExited:(NSEvent *)theEvent
{
//NSLog(@"mouse exited.");
if ([self.delegate respondsToSelector:@selector(mouseExitedImageView:)])
{
[self.delegate mouseExitedImageView:self];
}
}
- (void)mouseEntered:(NSEvent *)theEvent
{
//NSLog(@"mouse entered.");
if ([self.delegate respondsToSelector:@selector(mouseEnteredImageView:)])
{
[self.delegate mouseEnteredImageView:self];
}
}