0

似乎以下代码不起作用。

WebView *wView = [[WebView alloc] init];
[[wView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]] ];
[wView setWantsLayer:YES];
NSView *v = [[NSView alloc] init];
v.frame = CGRectMake(0, 0, 100, 100);
[v setLayer:wView.layer];
[v setWantsLayer:YES];

我想要的是使用其他视图的层,例如 NSTextField 的层或 Webview 的层,作为其他视图的子层

这行得通吗?

4

1 回答 1

1

在您的示例中,WebViewis layer-backedNSViewis layer-hosted。这意味着从 web 视图的角度来看,它拥有该层并且不期望任何东西直接与它交互。从视图的角度来看,可以直接操作同一层。

苹果在这方面的文档非常清楚,

层支持

当使用 layer-backed 视图时,你不应该直接与 layer 交互。相反,您必须使用标准视图编程实践。

层托管

使用图层托管视图时,您不应依赖视图进行绘图,也不应将子视图添加到图层托管视图。

通过使用这种混合方案,您可能会遇到麻烦,因为它与准则冲突!我会尝试另一种方法来解决您的问题。

于 2013-07-07T09:53:53.877 回答