即使光标移出影片后仍继续跟踪鼠标拖动事件

Posted

技术标签:

【中文标题】即使光标移出影片后仍继续跟踪鼠标拖动事件【英文标题】:continue tracking mouse-drag event even after cursor moves out of the movie 【发布时间】:2010-10-20 03:07:45 【问题描述】:

我在父视图的网格中对齐的视图很少(都是 NSView 的)

我正在压倒一切 -(void)mouseDown:(NSEvent *)事件 - (void)mouseDragged:(NSEvent *)子视图子类中一些自定义绘图的事件

具体来说,我在子视图的鼠标拖动过程中绘制了一些矩形框。

问题:当光标移出子视图时(在鼠标拖动期间),显然,我无法跟踪事件,因此无法调整矩形的大小。 我想在应用程序窗口之外跟踪鼠标移动......(现在只是拖动事件)

有没有明显或复杂的方法来实现这个.....

提前致谢

拉杰什

【问题讨论】:

试试这个***.com/a/60835834/7218228 【参考方案1】:

我想提出一个不涉及在 while 循环中拦截事件的已接受答案的替代方案。

处理鼠标拖动事件:

- (void)mouseDragged:(NSEvent *)theEvent


如果您在 NSView 内开始拖动,这将触发,如果您将鼠标拖到外部,它将继续触发。

【讨论】:

【参考方案2】:
- (void)mouseDown:(NSEvent *)theEvent

    NSPoint point;
    while (1) 
        theEvent = [[self window] nextEventMatchingMask: (NSLeftMouseDraggedMask | NSLeftMouseUpMask)];
        point = [self convertPoint: [theEvent locationInWindow] fromView: nil];

        // do something with point

        if ([theEvent type] == NSLeftMouseUp)
            break;
    

【讨论】:

以上是关于即使光标移出影片后仍继续跟踪鼠标拖动事件的主要内容,如果未能解决你的问题,请参考以下文章

VB6/VBA中跟踪鼠标移出窗体控件事件(类模块成员函数指针CHooker类应用)

处理拖动(来自 DragOver 事件)时是不是可以更改鼠标光标? [复制]

jquery鼠标移入移出

javascript --- 鼠标事件

jquery事件

即使拦截鼠标事件,Qt 窗口也会移动