首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSView mouseExited

NSView mouseExited
EN

Stack Overflow用户
提问于 2011-04-13 09:18:02
回答 1查看 1.3K关注 0票数 2

我有一个NSView,基本上,即使我的鼠标没有离开定义的框架,只是在它里面移动,mouseExited函数也会被调用。这是应该是怎么回事,还是我做错了什么?这个NSView有几个子视图,它是自定义的,下面是它的代码:

代码语言:javascript
复制
- (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;
}

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2011-04-14 05:18:20

我想通了。添加跟踪区域后,我更改了视图的框架,因此需要重新计算跟踪区域。找到此方法,该方法将在跟踪区域需要更新时自动调用:

代码语言:javascript
复制
- (void)updateTrackingAreas {

只需在此处重新计算您的跟踪区域即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5643409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档