title: Issue with tracking on mouse event while scrolling in NSTableCellView
body: <p>I have popover buttons on custom table cell view and when the mouse cursor moves over one cell, these buttons of the cell will be displayed and only this one cell should show the buttons. If i move the mouse cursor slowly, everything work correctly but when i scroll the table view with middle mouse rad faster there are too many cells are showing with popover buttons, what really should be avoided. Somehow the mouse event is not tracked correctly while scrolling. I got this tracking code from library of Apple Examples. Could you give some suggestion for this issue ?</p>
  
  <pre><code>#import "BasisCellView.h"
  
  @implementation BasisCellView
  
  - (void)drawRect:(NSRect)dirtyRect {
      [super drawRect:dirtyRect];
      // Drawing code here.
      [[NSImage imageNamed:@"background"] drawInRect:dirtyRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:0.1];
  }
  
  - (void)setBackgroundStyle:(NSBackgroundStyle)backgroundStyle {
      [super setBackgroundStyle: NSBackgroundStyleLight];
  }
  
  - (void)setMouseInside:(BOOL)value {
      if (mouseInside != value) {
          mouseInside = value;
          [self.deleteButton setHidden:!value];
          [self.bookmarkButton setHidden:!value];
          [self setNeedsDisplay:YES];
          NSLog(@"redrawn");
      }
  }
  
  - (BOOL)mouseInside {
      return mouseInside;
  }
  
  - (void)ensureTrackingArea {
      if (trackingArea == nil) {
          trackingArea = [[NSTrackingArea alloc] initWithRect:NSZeroRect options:NSTrackingInVisibleRect | NSTrackingActiveAlways | NSTrackingMouseEnteredAndExited owner:self userInfo:nil];
      }
  }
  
  - (void)updateTrackingAreas {
      [super updateTrackingAreas];
      [self ensureTrackingArea];
      if (![[self trackingAreas] containsObject:trackingArea]) {
          [self addTrackingArea:trackingArea];
      }
  }
  
  - (void)mouseEntered:(NSEvent *)theEvent {
      NSLog(@"1");
      self.mouseInside = YES;
  }
  
  - (void)mouseExited:(NSEvent *)theEvent {
      NSLog(@"0");
      self.mouseInside = NO;
  }
  
  @end
  </code></pre>
  
  <p>And here is the printed out log:</p>
  
  <pre><code>2015-02-05 08:59:33.267 Clever[1286:25969] 1
  2015-02-05 08:59:33.267 Clever[1286:25969] redrawn
  2015-02-05 08:59:33.299 Clever[1286:25969] 0
  2015-02-05 08:59:33.299 Clever[1286:25969] redrawn
  2015-02-05 08:59:33.333 Clever[1286:25969] 1
  2015-02-05 08:59:33.333 Clever[1286:25969] redrawn
  2015-02-05 08:59:33.350 Clever[1286:25969] 0
  2015-02-05 08:59:33.350 Clever[1286:25969] redrawn
  2015-02-05 08:59:33.382 Clever[1286:25969] 1
  2015-02-05 08:59:33.383 Clever[1286:25969] redrawn
  2015-02-05 08:59:33.669 Clever[1286:25969] 1
  2015-02-05 08:59:33.669 Clever[1286:25969] redrawn
  2015-02-05 08:59:33.736 Clever[1286:25969] 1
  2015-02-05 08:59:33.736 Clever[1286:25969] redrawn
  2015-02-05 08:59:33.769 Clever[1286:25969] 0
  2015-02-05 08:59:33.769 Clever[1286:25969] redrawn
  2015-02-05 08:59:33.769 Clever[1286:25969] 1
  2015-02-05 08:59:33.770 Clever[1286:25969] redrawn
  2015-02-05 08:59:34.101 Clever[1286:25969] 1
  2015-02-05 08:59:34.101 Clever[1286:25969] redrawn
  2015-02-05 08:59:34.102 Clever[1286:25969] 0
  2015-02-05 08:59:34.102 Clever[1286:25969] redrawn
  2015-02-05 08:59:34.136 Clever[1286:25969] 0
  2015-02-05 08:59:34.136 Clever[1286:25969] redrawn
  2015-02-05 08:59:34.150 Clever[1286:25969] 1
  2015-02-05 08:59:34.150 Clever[1286:25969] redrawn
  2015-02-05 08:59:34.187 Clever[1286:25969] 1
  2015-02-05 08:59:34.187 Clever[1286:25969] redrawn
  2015-02-05 08:59:34.235 Clever[1286:25969] 1
  2015-02-05 08:59:34.272 Clever[1286:25969] 0
  </code></pre>