2011-05-17 61 views

回答

0

爲什麼你不試一試呢?

爲了回答這個問題:是的,如果用戶具有與鼠標滾輪或滾動功能的觸摸板,它仍然是可能的滾動視圖,儘管滾動條是不可見的。

+3

不知道我做錯了。當setHasHorizo​​ntalScroller:YES時,我可以用我的觸控板滾動,但是如果setHasHorizo​​ntalScroller:NO,則不能滾動。 – NuBee 2011-05-17 18:26:45

1

導致滾動視圖不顯示滾動條,而不是手勢滾動迴應:

-setHasHorizontalScroller:NO 

導致顯示被禁用的滾動條,但它響應手勢滾動:

-setHasHorizontalScroller:YES 
-setHidden:YES 
+0

我想,也許你的意思是「YES導致殘疾滾輪**不顯示**,但它響應手勢滾動」,不是嗎? – 2012-04-21 18:38:55

4

創建NSScroller子類並將其設置爲NSScrollView實例的垂直/水平滾動條。

的NSScroller子類應當覆蓋本(10.7及以上):

+ (CGFloat)scrollerWidthForControlSize:(NSControlSize)controlSize scrollerStyle:(NSScrollerStyle)scrollerStyle { 
return 0; 
} 
+0

不適用於10.8。滾動仍然禁用。 – svoisen 2013-03-01 00:30:13

3

這肯定是在了AppKit的錯誤。我能得到這個工作10.8.5使用下列解決方案:

1)子類NSScroller(首選方法)

+ (BOOL)isCompatibleWithOverlayScrollers 
{ 
    // Let this scroller sit on top of the content view, rather than next to it. 
    return YES; 
} 

- (void)setHidden:(BOOL)flag 
{ 
    // Ugly hack: make sure we are always hidden. 
    [super setHidden:YES]; 
} 

來源jmkhttps://stackoverflow.com/a/12960795/836263

2)反彈和動量似乎使用傳統的風格時破裂。它也部分打破了Apple的scroll synchronization代碼。如果一個是NSScrollerStyleOverlay而另一個是NSScrollerStyleLegacy,它將導致滾動視圖重置滾動位置。如果滾動覆蓋式滾動視圖,則滾動舊式樣式,它會將兩個滾動視圖重置爲頂部y = 0滾動偏移量。

[self.scrollView setHasVerticalScroller:YES]; 
[self.scrollView setScrollerStyle:NSScrollerStyleLegacy]; 
[self.scrollView setHasVerticalScroller:NO]; 
1

是的,這是可能的。初始化scrollView後儘快嘗試一下。

self.scrollView.wantsLayer = YES; 

我已經得到了這個沒有隱藏的NSScroller子類,而不觸及setHasVerticalScroller:工作。另外,如果self.scrollView是覆蓋drawRect:的子類,請嘗試關閉該功能以確保您在那裏執行的操作不會導致問題。