gpt4 book ai didi

objective-c - cocoa:webView里面有超链接添加 ` target = "_blank "`打不开

转载 作者:行者123 更新时间:2023-12-03 16:27:14 25 4
gpt4 key购买 nike

带有超链接添加target = "_blank "的webView无法打开。

我正在开发一个类似 webview 的应用程序,但我有一个问题。如何在当前应用程序的新窗口中打开链接 - 而不是在 Safari 中?

感谢您的帮助。

enter image description here

@Rob Keniger 代码没有运行。为什么?

最佳答案

您需要将一个对象设置为 WebViewUIDelegate 并在该对象中实现 webView:createWebViewWithRequest:方法。

在该方法的实现中,您需要打开一个包含单独的 WebView 的新窗口,然后告诉其 mainFrame 加载 URLRequest > 作为参数传递给方法。

更新:

我看过你的代码。您需要指定一个对象作为 Web View 的 UIDelegate,因此将 [webView setUIDelegate:self] 行添加到 applicationDidFinishLaunching: 中。

如何实现委托(delegate)的一个非常简单的示例是:

- (WebView *)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request
{
NSUInteger windowStyleMask = NSClosableWindowMask |
NSMiniaturizableWindowMask |
NSResizableWindowMask |
NSTitledWindowMask;
NSWindow* webWindow = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 800, 600) styleMask:windowStyleMask backing:NSBackingStoreBuffered defer:NO];
WebView* newWebView = [[WebView alloc] initWithFrame:[webWindow contentRectForFrameRect:webWindow.frame]];
[newWebView setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable];
[webWindow setContentView:newWebView];
[webWindow center];
[webWindow makeKeyAndOrderFront:self];
[[newWebView mainFrame] loadRequest:request];
return newWebView;
}

关于objective-c - cocoa:webView里面有超链接添加 ` target = "_blank "`打不开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10302217/

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