2011-09-16 9 views
0

OSXでは、Xcodeを使ってデスクトップアプリケーションを作成しています。 webviewは正常に読み込まれ、コンテンツを動的に読み込むことができます。しかし、webview内のリンクをクリックすると、それらは追跡されません。色は変わりますが、新しいページはロードされません。私がこのようなjavascriptで私のリンクをコード化すれば - それらは働く。Cocoa webview links disabled

<a href='http://x/' onClick="window.location = this.href">link there</a> 

のリンクは、Webビュー内で続くことを可能にするのObjective-C 1つのライナーはありますか?

ここで私が気づいていない別の問題がありますか?

+0

など作曲...しかし、トップドン」にあるリンク仕事。 –

+0

@Bavarious権利、私の間違い –

答えて

0

私はWebPolicyDecisionListenerを無視するいくつかのカスタム機能でウェブを形成コピーしたコードを持っていたので、それがあったが判明...

- このすべてのObjective-Cのは、私には新しいものです、私はどちらのビットがまだ何をするのか分からない。私はいくつかのポインティングとクリック、そしていくつかのコーディングを行う - 私は正確にどのようにすべてのリンクを知らない。他の言語では、プログラム全体が1か所に収まっています。

私はいくつかのコメントを追加することにより、固定 - 以下のコードを参照...私はWebViewのにGmailにロードする場合、私は電子メールを使用することができます

- (void)webView:(WebView *)aWebView 
decidePolicyForNavigationAction:(NSDictionary *)actionInformation 
     request:(NSURLRequest *)request 
      frame:(WebFrame *)frame 
decisionListener:(id <WebPolicyDecisionListener>)listener 
{ 
    if ([self requestIsLinkClick:actionInformation]) { 
     if ([@"method" isEqual:[[request URL] scheme]]) { 
      SEL selector = NSSelectorFromString([[request URL] resourceSpecifier]); 
      if ([prototypeDelegate respondsToSelector:selector]) { 
       [prototypeDelegate performSelector:selector]; 
      } 
     } 
     // [listener ignore]; 
    } // else { 
     [listener use]; 
    //} 
} 
6

Gmailの上部にあるリンクが新しいウィンドウで開きます。それらを動作させるには、少なくともWebUIDelegateのメソッドwebView:createWebViewWithRequest:webViewShow:を実装する必要があります。同じウェブビューですべてのリンクを開くだけの場合は、新しいリンクを作成する代わりにwebView:createWebViewWithRequest:から返すことができます。すべての詳細を与えることなく質問をして申し訳ありません