2

有超链接添加的 webViewtarget = " _blank "无法打开。

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

感谢帮助。

在此处输入图像描述

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

4

1 回答 1

5

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

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

更新:

我看过你的代码。您需要将对象分配为 Web 视图的UIDelegate,因此[webView setUIDelegate:self]applicationDidFinishLaunching:.

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

- (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;
}
于 2012-04-25T00:04:09.050 回答