使WebKit中的WebView可以通过鼠标在Cocoa中拖动

时间:2011-07-17 14:57:29

标签: cocoa webkit webview

我想创建一种桌面小部件,并希望它通过HTML / CSS非常容易。我决定使用WebView来完成这项任务。

我的内置NSWindow无边框WebView。我希望使用鼠标使其可拖动(因为任何普通窗口都可以使用其标题拖动,但通过单击WebView内的任何位置)。试图继承WebView并覆盖mouseDownmouseDragged事件,但这不起作用(原因很明显)。

当然,我可以在WebView之上创建透明视图来解决问题,但我真的想找到更好的方法。有人知道如何做到这一点吗?

1 个答案:

答案 0 :(得分:4)

通过覆盖父- (void)sendEvent:子类中的NSWindow方法解决了这个问题,如下所示:

//Overriding mouse events
- (void)sendEvent:(NSEvent *)theEvent
{
    if ([theEvent type] == NSLeftMouseDown)
    {
        [self mouseDown:theEvent];
    }
    else if ([theEvent type] == NSLeftMouseDragged)
    {
        [self mouseDragged:theEvent];
    }
    else
    {
        [super sendEvent:theEvent];
    }
}

我想这是最好的解决方案。