NSViewのmouseEnteredとmouseExitedを有効にする方法

NSViewのmouseEnteredメッセージとmouseExitedメッセージはマウス移動した時にViewが受信するメッセージだ。
mouseEnteredはNSViewにマウスが入ったとき、mouseExitedはNSViewからマウスが出たときに受信する。
しかし、この2つのメソッドはデフォルトの状態では呼ばれない。
NSViewのサブクラスで下記のようにメソッドをオーバーライドし、
マウスの移動を検知する領域を指定するとmouseEnteredメッセージとmouseExitedメッセージが受信できるようになる。

- (void)viewDidMoveToWindow
{
	
    trackingRect = [self addTrackingRect:[self bounds] owner:self userData:NULL assumeInside:NO];

}

- (void)setFrame:(NSRect)frame
{
    [super setFrame:frame];
    [self removeTrackingRect:trackingRect];
    trackingRect = [self addTrackingRect:[self bounds] owner:self userData:NULL assumeInside:NO];
}