When to override updateTrackingAreas
===

So I have a quite big `NSScrollView` with several custom views in it. In these custom views i'm overriding `-(void)updateTrackingAreas` like this:

    - (void)updateTrackingAreas
    {    
        [self removeTrackingArea:trackingArea];
    
        trackingArea = [[NSTrackingArea alloc] initWithRect:[self bounds]
                                                    options:(NSTrackingCursorUpdate |
                                                             NSTrackingActiveWhenFirstResponder |
                                                             NSTrackingInVisibleRect)
                                                      owner:self 
                                                   userInfo:nil];
    
        [self addTrackingArea:trackingArea];
    }

But somehow I feel this is a little unefficient since I have about 50 instances of my custom view in the NSScrollView and only about 5 of them are visible at a time and this way I'm updating the tracking areas of non-visible views.

So I thought I would skip updating the tracking areas if the view is not in NSScrollView's visible rect. Something like:

    - (void)updateTrackingAreas
    {
        if(!NSIntersectsRect([self frame], [[self superview] visibleRect]))
        {
            return;
        }
    
        // ...
    } 

This seems to be working out well but I'm not sure if this is safe.

Does anyone have some advice on this matter?