gpt4 book ai didi

objective-c - NSView 鼠标退出

转载 作者:行者123 更新时间:2023-12-03 16:44:18 25 4
gpt4 key购买 nike

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

- (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;
}

谢谢。

最佳答案

我想通了。添加跟踪区域后,我正在更改 View 框架,因此我需要重新计算跟踪区域。发现只要跟踪区域需要更新就会自动调用这个方法:

- (void)updateTrackingAreas {

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

关于objective-c - NSView 鼠标退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5643409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com