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

标签 cocoa webkit webview

我想创建一种桌面小部件,并希望它能够非常容易地通过 HTML/CSS 设置样式。我决定使用 WebView 来完成此任务。

我有一个无边框的NSWindow,里面有一个WebView。我想使用鼠标使其可拖动(因为任何普通窗口都可以使用其标题进行拖动,但可以通过单击 WebView 内的任意位置来拖动)。尝试子类化 WebView 并覆盖 mouseDownmouseDragged 事件,但这不起作用(出于明显的原因)。

当然,我可以在 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/

相关文章:

macos - NSOpenPanel - 一切都已弃用?

ios - 是否有 API 可以从 iOS 应用程序的文档文件夹中复制文件?

objective-c - 通过 Objective-c 中的绑定(bind)在 NSComboBoxCell 上自动完成

css - z-index 在基于 webkit 的浏览器中导致渲染问题

ios - 隐藏顶部导航栏和底部栏

java - Android中WebView使用问题

ios youtube 视频继续在后台播放

objective-c - NSApplescript 不会接受 initWithContentsOfURL

objective-c - 具有隐私浏览功能的 Cocoa WebView - WebPreferences 未应用

ios - 我可以为特定的 UIWebView 或 NSURLConnection 指定 NSURLCache 吗?