2

追加するハイパーリンクを持つ webView をtarget = " _blank "開くことができません。

webview のようなアプリケーションを開発していますが、問題が 1 つあります。現在のアプリケーションの新しいウィンドウでリンクを開く方法 - サファリではありませんか?

手伝ってくれてありがとう。

ここに画像の説明を入力

@Rob Keniger コードが実行されていません。

4

1 に答える 1

5

オブジェクトを として設定し、そのオブジェクトでメソッドを実装する必要がありUIDelegateます。WebViewwebView: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 に答える