我认为这应该很简单,但我无法使其工作。
我想检测 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 类。