我想创建一种桌面小部件,并希望它非常易于通过HTML/CSS设置样式。我决定将WebView
用于此任务。
我有一个无边界的NSWindow
,里面有一个WebView
。我想使用鼠标使其可拖动(因为可以使用其标题来拖动任何普通窗口,但是可以通过单击WebView
内的任意位置来拖动它)。尝试子类化WebView
并覆盖mouseDown
和mouseDragged
事件,但这没有用(出于明显的原因)。
当然,我可以在WebView
上方创建一个透明 View 来解决该问题,但我确实想找到一种更好的方法。有人知道如何做到这一点吗?
最佳答案
通过重写父- (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];
}
}
我猜这是最好的解决方案。