1

そのため、WebViewにいくつかのコンテンツが表示されているプロジェクトがあり、その上に固執したいと思います。ヘッダーをWebViewコンテンツと一緒にスクロールしたい。現在、WebViewは通常、独自のスクロール処理を実行したいと考えていますが、以下を使用しないように指示できます。

[[webView mainFrame] setAllowsScrolling:NO];

これにより、WebViewのスクロールバーが表示されなくなります。ただし、NSScrollViewに埋め込まれているにもかかわらず、NSScrollViewのスクロールバーがアクティブになることはありません。WebViewにサイズ変更を指示する必要があると結論付けることしかできませんが、その方法がわかりません。私は以下を試しました:

NSRect webViewBounds = [webView bounds];
[webView setFrameSize:webViewBounds.size];

しかし、それもうまくいかないようです。

助言がありますか?

4

3 に答える 3

0

コードの境界とフレームは同じサイズである必要があります。一方を他方に設定しても何も変わりません。

今日はWebViewクラスで少し遊んだ。私のアプローチでは、ヘッダーをHTMLコードに追加する必要はありません。通知に登録すると、開始点が得られます。

  [[NSNotificationCenter defaultCenter] addObserver:self 
    selector:@selector(webViewDidScroll:)
    name:NSViewBoundsDidChangeNotification object:nil];

次に、通知送信者のクラスを確認できます(WebViewが1つしかない場合)。

- (void)webViewDidScroll:(NSNotification *)aNotification
{
  if ([[aNotification object] isKindOfClass:NSClassFromString(@"WebClipView")])
  {
    // Do whatever you like; scroll your header etc.
  }
}
于 2011-04-16T18:55:25.927 に答える
0

私はこれに関するドキュメントをざっと見ましたが、おそらくばかげた質問です。フレームサイズを変更した後setNeedsDisplay、ビューにメッセージを送信していますか?

于 2009-10-13T16:19:29.523 に答える
0

代替ソリューション:ヘッダーをHTML / CSS / JavaScriptで表現し、実際のコンテンツをiframeに配置するのはどうですか?フレーム階層をトラバースしてそのフレームのWebFrameオブジェクトを見つけ、DOM(おそらく独自のオブジェクトでラップされている)を使用してヘッダーを制御できます。

于 2009-10-14T03:34:59.113 に答える