2013-10-07 14 views
1

我遇到了一個奇怪的問題(Bug?):假設我有一個WebView,它將垂直滾動。在層疊視圖中縮小NSScrollView的NSScroller

我現在想縮小一下mainFrame的垂直滾動條,使其高度比NSScrollView本身小。

enter image description here

這樣做的原因是,我想固定web視圖上述兩個視圖(頂部和底部上的邊緣)。

我通過改變verticalScroller的框架(改變原點和高度)在frameLoad委託方法中輕鬆實現了這一點。

它的工作原理,但:

然而,一旦我設置web視圖和它的父的NSView是層支持,它停止工作,滾輪本身重置爲默認的位置和高度。

現在我不知道這是否是一個錯誤。 有沒有其他方法可以嘗試'插入'滾動條?

回答

2

你試過繼承NSScroller,將其設置爲垂直滾動條你NSScrollView和壓倒一切的

-(void) setFrameOrigin:(NSPoint)origin; 
-(void) setFrameSize:(NSSize)size; 

我想製作一個NSView層支持的原因框架尺寸被再次設定(NSScrollView似乎採取了不少這個控制,因爲當你創建一個自定義滾動的,沒有「乾淨」的方式來設置NSScroller作爲水平或垂直以外調用 - initWithFrame:與

  1. 高度>寬度爲auto matically設置爲垂直
  2. 寬度>高度自動設置爲水平

我的另一個建議是,如果你想NSScroller不完全反映其母公司NSScrollView的規模將你將NSView作爲webview的內容視圖更好。 NSView有3個子視圖。頂部和底部的兩個視圖固定爲,中間還有一個NSScrollView。在這種情況下,沒有必要的自定義NSScroller。

+0

謝謝,lead_the_zeppelin,我結束了使用二次NSScroller,即觀察到滾動值的變化,並且還設置了值:[RMSecondaryScroller](https://github.com/raffael/RMSecondaryScroller)。不過,我會測試你的第一種方法是否更可靠! – Raffael