2009-10-13 49 views
1

所以我有一個項目有一些內容在WebView中顯示,我想堅持以上。我想要標題滾動的WebView內容。現在,一般的WebView想要做它自己的滾動操作,但你不能告訴它使用:如何在NSScrollView中嵌入WebView?

[[webView mainFrame] setAllowsScrolling:NO]; 

成功地使的WebView滾動條不會出現。但是,儘管嵌入在NSScrollView中,NSScrollView的滾動條卻不會被激活。我只能得出結論,WebView需要被告知調整大小,但我無法弄清楚如何做到這一點。我曾嘗試以下內容:

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

但這似乎並不奏效。

有什麼建議嗎?

回答

0

替代解決方案:如何在HTML/CSS/JavaScript中表達標題並將真實內容放入iframe中?您可以遍歷框架層次結構以找到該框架的WebFrame對象,並使用DOM(可能由您自己的對象包裝)來控制標題。

+0

是的,我正在考慮嘗試。看起來像一個kludge,但如果這是它需要... =) – Benno 2009-10-14 05:28:30

0

我有一個快速查看文檔,可能是一個愚蠢的問題;在更改幀大小後,您是否將setNeedsDisplay消息發送到視圖?

+0

是的,我是。沒有不同。我懷疑問題可能是WebView的大小是根據我在Interface Builder中給出的大小來確定的。我不知道如何告訴它它可以像它想要的那麼大,也不知道如何確定它可以給出的內容有多大。我可能會試着給它一個巨大的垂直尺寸,看看它是如何發展的。 – Benno 2009-10-13 20:26:06

0

代碼中的邊界和框架應該具有相同的大小。設置一個到另一個不會改變。

今天我玩了一點WebView類。使用我的方法,您不必將標題添加到HTML代碼中。註冊一個通知給你一個起點:

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

然後你可以檢查類的通知發件人(假設你只有一個的WebView):

- (void)webViewDidScroll:(NSNotification *)aNotification 
{ 
    if ([[aNotification object] isKindOfClass:NSClassFromString(@"WebClipView")]) 
    { 
    // Do whatever you like; scroll your header etc. 
    } 
}