我想创建一种桌面小部件,并希望它能够非常容易地通过 HTML/CSS 设置样式。我决定使用 WebView
来完成此任务。
我有一个无边框的NSWindow
,里面有一个WebView
。我想使用鼠标使其可拖动(因为任何普通窗口都可以使用其标题进行拖动,但可以通过单击 WebView
内的任意位置来拖动)。尝试子类化 WebView
并覆盖 mouseDown
和 mouseDragged
事件,但这不起作用(出于明显的原因)。
当然,我可以在 WebView
上面创建一个透明 View 来解决问题,但我真的想找到更好的方法。有人知道如何实现这一点吗?
最佳答案
通过重写父 NSWindow
子类中的 - (void)sendEvent:
方法解决了该问题,如下所示:
//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];
}
}
我想这是最好的解决方案。
关于cocoa - 在 Cocoa 中使 WebKit 中的 WebView 可通过鼠标拖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6724633/