首页 文章

分层Cocoa WebView - 在顶部绘图?

提问于
浏览
5

webview in core animation layer

我能找到的唯一其他线程是上面的,不一定符合我的需要 . 是否有一种可靠的方法来简单地在webview上绘制视图?我试图在WebView上层叠常规NSView,并且它首先绘制正确,但是webview中的任何移动(滚动页面等)似乎使视图无效并产生视觉伪像 .

我试过了:

[[[NSApp mainWindow] contentView] addSubview:view positioned:NSWindowAbove relativeTo:webView];

没有运气,同样的问题 - 除非我遗漏某些东西,否则z-ordering似乎不起作用 .

这只是webviews的限制吗?

我也尝试将上面的视图实现为一个窗口,它工作得更好(只是以编程方式控制窗口的位置) . 但是,所需的行为是用户在此窗口中输入一些文本,但是为了不使用“焦点” - 即当用户点击文本字段时主窗口变为非活动状态(x - 变为灰色)新窗口 . 有什么办法可以避免吗?

我已经尝试了子类化NSWindow并重写canBecomeKey(返回YES)和canBecomeMain(返回NO),但窗口仍然窃取焦点 .

编辑:我哭了:-(我无法弄清楚在webkit上的绘图方式 . 另一方面,我做了一个方法来强制我的应用程序的主窗口保持活动状态,即使你有一个具有键状态的弹出窗口 . 但是,当在弹出对话框中使用文本输入时(必须强制进入键窗口状态),它会产生意想不到的后果 . 退格不起作用::摇头::和鼠标事件没有分发到下面的webkit视图(对于嵌入在html中的组件的鼠标悬停) . 疯狂 .

玩笑

1 回答

  • 2

    有点晚了,但我对同样的问题感到头疼,问题发生两年后我仍然无法找到答案 . 在我的例子中,在我想通过WebView绘制的视图上设置wantsLayer = YES解决了问题 .

相关问题