NSView - 在创建视图时未调用mouseEntered

时间:2011-07-07 07:32:40

标签: objective-c cocoa macos

有没有办法检查鼠标是否在视图中?

1 个答案:

答案 0 :(得分:0)

您的问题有点不清楚,但我认为您希望在自定义视图可见时检测鼠标的位置,如果鼠标位置在视图范围内,则更新它。

如果是这样,你需要做这样的事情:

- (void)viewDidMoveToWindow
{
    if(![self window])
        return;

    NSPoint mouseLocation = [[self window] mouseLocationOutsideOfEventStream];

    if(NSPointInRect(mouseLocation, [self frame]))
    {
        NSLog(@"mouse is over the view");
    }
    else
    {
        NSLog(@"mouse is not over the view");
    }

}