0

我有一个子类NSView,它与窗口内容区域的边缘对齐,即视图占据了窗口的整个区域。

在该自定义内部,NSView我安装了一个NSTrackingArea也与视图边缘对齐的,以跟踪鼠标移动和进入/退出事件。

当我在视图内单击鼠标并在窗口外拖动时,一旦鼠标与窗口边框相交,光标就会变成调整大小的形状(就像我将鼠标悬停在窗口边框上一样)并保持该形状,无论我拖动到哪里 -窗内或窗外 - 直到我松开鼠标按钮。

我在许多应用程序中也观察到了这个错误,甚至在 Apple 自己的应用程序中也是如此。例如,在 Safari 中,如果您单击页面的背景并拖动到窗口外,则光标会停留在调整大小模式。

的选项标志NSTrackingArea似乎不会影响该错误。如果我不添加NSTrackingArea.

这真的很烦人,有解决方法吗?

这是我的代码:

- (void)updateTrackingAreas {
    if (_trackingArea != nil) {
        [self removeTrackingArea:_trackingArea];
    }
    NSRect trackingFrame = [self bounds];
    _trackingArea = [[NSTrackingArea alloc]
                     initWithRect:trackingFrame
                     options:(NSTrackingAreaOptions)(NSTrackingMouseMoved | NSTrackingMouseEnteredAndExited | NSTrackingActiveAlways)
                     owner:self
                     userInfo:nil];
    [self addTrackingArea:_trackingArea];
}
4

0 回答 0