gpt4 book ai didi

cocoa - 在 OSX 上的 Web View 中显示的 Google map 顶部绘制 subview

转载 作者:行者123 更新时间:2023-12-03 16:32:49 24 4
gpt4 key购买 nike

我正在尝试在 OSX 中创建一个简单的实用程序,在 WebView 中呈现 Google map 并在其顶部显示一些 View 。对于大多数网站(包括指向maps.google.com 的链接), subview 将呈现在WebView 之上。甜的。但如果我使用 Google Maps API v3,由于某种原因, map 内容将在我的 subview 上呈现。

这是一个例子:

我有一个带有两个 subview 、一个 WebView 和一个 NSButton 的窗口。顺序是按钮应位于顶部。我将按钮的一半放置在 WebView 上,以使示例更清晰。

如果我加载

maps.google.com/maps?q=-33.86818,+151.1963

...按钮出现在 View 顶部:

http://dl.dropbox.com/u/22329586/1_webviewproblem_works.png

但是如果我加载这个谷歌演示

gmaps-samples-v3.googlecode.com/svn/trunk/draggable-directions/draggable-directions.html

...它使用 Google Map API v3,它渲染内容:

http://dl.dropbox.com/u/22329586/2_webviewproblem_doesnt_work.png

(抱歉,我没有足够的声誉点来内嵌发布图像)

有什么想法吗?

最佳答案

尝试在 View 和 super View 上设置[view setWantsLayer:YES]。它可能会有所帮助。

一个小注释,为什么有帮助:

cocoa 文档说:

For performance reasons, Cocoa does not enforce clipping among sibling views or guarantee correct invalidation and drawing behavior when sibling views overlap. If you want a view to be drawn in front of another view, you should make the front view a subview (or descendant) of the rear view.

如果您使用未启用图层支持的 NSViews setWantsLayer:YES,并且其中一个 View 偶尔是图层支持或图层托管或 OpenGL View ,则它将绘制在所有其他 View 之上。

但是当您在 View 中启用图层支持时,它们都会在支持重叠的 CALayer 层次结构中绘制。

关于cocoa - 在 OSX 上的 Web View 中显示的 Google map 顶部绘制 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8511147/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com