我认为这应该很简单,但我无法使其工作。

我想检测 WebView 上的鼠标点击...

我已经继承了 WebView,这是代码

#import <AppKit/AppKit.h>
#import <Foundation/Foundation.h>
#import <WebKit/WebKit.h>

@interface ResultsWebView : WebView {
}
@end


#import "ResultsWebView.h"

@implementation ResultsWebView

- (void)mouseDown:(NSEvent *)theEvent {
    NSLog(@"%@", theEvent);
}

@end

在我的 xib 文件中,我添加了一个 WebView,然后将类更改为 ResultsWebView。

我已经检查了运行时并且对象是一个 ResultsWebView,但是从来没有调用过 mouseDown 事件......

我错过了什么?

最佳答案

问题是消息没有发送到 WebView。相反,它被发送到您的 WebView 内的私有(private) WebHTMLView,它实际上处理鼠标事件。

http://trac.webkit.org/browser/trunk/Source/WebKit/mac/WebView/WebHTMLView.mm#L3555

您可能只想研究在 WebView 中使用 javascript 将 onmousedown 事件发送回您的 Objective-c 类。

10-08 06:32