除了滚动之外,是否可以禁用与WebView的所有用户交互?我希望用户能够看到页面(并可能选择内容),但不能单击链接/右键单击/刷新/焦点表单字段/触发UI DOM事件(onclick等).
我在this question上看到我可以禁用右键单击和选择,但这对表单元素和导航发送DOM事件没有帮助.
解决方法
您可以继承NSWindow并将您的子类设置为WebView的窗口.然后,您可以通过检测鼠标事件影响的控件类型来控制将哪些事件发送到WebView.
这是非常强大的力量,但将完全禁用任何鼠标事件,包括翻转等:
@interface WebViewEventKillingWindow : NSWindow { IBOutlet WebView* myWebView; } @end @implementation WebViewEventKillingWindow - (void)sendEvent:(NSEvent*)event { NSView* hitView; switch([event type]) { case NSScrollWheel: case NSLeftMouseDown: case NSLeftMouseUp: case NSLeftMouseDragged: case NSMouseMoved: case NSRightMouseDown: case NSRightMouseUp: case NSRightMouseDragged: hitView = [myWebView hitTest:[event locationInWindow]]; if([hitView isDescendantOf:myWebView] && !([hitView isKindOfClass:[NSScroller class]] || [hitView isKindOfClass:[NSScrollView class]])) { return; } break; default: break; } [super sendEvent:event]; } @end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。