3
我已經創建了一個類似於NSScroller的子類,但是如果水平和垂直滾動條在NSScrollView或NSTableView中都可見,我會在右下角留下一個醜陋的白色方形。任何人都知道在哪裏添加我的自定義繪圖以填充更漂亮的東西?子類化NSScroller,如何擺脫右下角的白色方塊?
我已經創建了一個類似於NSScroller的子類,但是如果水平和垂直滾動條在NSScrollView或NSTableView中都可見,我會在右下角留下一個醜陋的白色方形。任何人都知道在哪裏添加我的自定義繪圖以填充更漂亮的東西?子類化NSScroller,如何擺脫右下角的白色方塊?
好吧,我想我有解決方案(S)。
要麼你告訴scrollview不要繪製它的背景,在這種情況下,它下面的任何東西都會填滿角落。
或者說,這是我做的,你重寫滾動視圖的drawRect方法有以下幾點:
- (void)drawRect:(NSRect)rect{
[super drawRect: rect];
if([self hasVerticalScroller] && [self hasHorizontalScroller]){
NSRect vframe = [[self verticalScroller]frame];
NSRect hframe = [[self horizontalScroller]frame];
NSRect corner;
corner.origin.x = NSMaxX(hframe);
corner.origin.y = NSMinY(hframe);
corner.size.width = NSWidth(vframe);
corner.size.height = NSHeight(hframe);
// your custom drawing in the corner rect here
}
}
稍微整潔的解決方案可能是在這裏增加一個子視圖支持,而不是不像cornerView ,並覆蓋-tile方法來正確定位和顯示/隱藏該視圖。這樣,您可以創建各種整潔的自定義視圖,並將它們掛在那裏,種植盒子,存根填充物,按鈕...... – uliwitness 2010-01-17 14:44:04
這裏的第一個解決方案似乎不起作用。如果我告訴滾動視圖不要繪製其背景,那麼即使窗口背景很暗,角落也會充滿白色。 – JWWalker 2013-10-17 20:19:10