我試圖做一個NSScrollView用剪切的邊角,類似於Twitter的應用程序剪輯路徑:我怎樣才能得到NSScrollView尊重
我有一個NSScrollView
子類,添加以下代碼:
- (void)drawRect:(NSRect)dirtyRect {
NSBezierPath *pcath = [NSBezierPath bezierPathWithRoundedRect:[self bounds] xRadius:kDefaultCornerRadius yRadius:kDefaultCornerRadius];
[path setClip];
[super drawRect:dirtyRect];
}
我預計NSScrollView
的內容有圓角,但它不尊重剪輯路徑。我怎樣才能做到這一點?
UPDATE &澄清
我知道如何使一個自定義NSScroller
,我知道如何使它透明覆蓋。我所要求的只是如何使NSSCrollView
卡在其角落,包括它所包含的一切。 NSScrollView
位於NSView
之內,其背景可能會發生變化,這意味着視圖疊加以僞造圓角不是選項。
drawRect聲明的超級實現可能會設置新聞剪輯。嘗試逐個繪製部件,而不是調用超級部件,看看它是否會改變任何內容。 – sosborn 2011-03-11 03:10:45
你的意思是畫出contentView和documentView自己,而不是要求super做到這一點?看起來我不得不重新實現所有的NSScrollView滾動邏輯來做到這一點。我希望有一種方式,而不是重新發明輪子。 – coneybeare 2011-03-11 03:16:52
查看NSScroller的文檔。通常一個NSScrollView將有兩個NSScrollers,一個x和一個y。 NSScroller類公開了繪製方法。如果你要像Twitter客戶端一樣的外觀,你將不得不繼承NSScroller的子類。 – sosborn 2011-03-11 05:32:17