NSView mouseExited - PullRequest
       9

NSView mouseExited

2 голосов
/ 13 апреля 2011

У меня есть NSView и, в принципе, даже когда моя мышь не покидает определенный кадр, просто перемещается в нем, вызывается функция mouseExited.Это так и должно быть или я делаю что-то не так?Существует несколько подпредставлений этого NSView, и оно нестандартное, и вот код для него:

- (id)initWithDelegate:(id)del {
    if (self = [super init]) {
        [del retain];
        delegate = del;
    }
    return self;
}

- (void)dealloc {
    [delegate release];
    [super dealloc];
}

- (void)viewDidMoveToWindow {
    [self addTrackingRect:[self bounds]
                    owner:self
                 userData:nil
             assumeInside:NO];
}

- (void)mouseEntered:(NSEvent *)theEvent {
    [delegate mouseEntered];
}

- (void)mouseExited:(NSEvent *)theEvent {
    NSLog(@"mouse exited");
    [delegate mouseExited];
}

- (void)mouseDown:(NSEvent *)theEvent {
    [delegate mouseDown];
}

- (NSView *)hitTest:(NSPoint)aPoint {
    return self;
}

Спасибо.

1 Ответ

1 голос
/ 14 апреля 2011

Я понял это.После добавления области отслеживания я менял рамку вида, поэтому мне нужно было пересчитать область отслеживания.Нашел этот метод, который будет вызываться автоматически при необходимости обновления области отслеживания:

- (void)updateTrackingAreas {

Просто просто пересчитайте область отслеживания здесь.

...