Cocoa 如果setHasHorizontalScroller:否,NSScrollView能否滚动?
是否可以“隐藏”NSScrollView的滚动条,但仍然可以获得手势滚动行为?为什么不试试呢Cocoa 如果setHasHorizontalScroller:否,NSScrollView能否滚动?,cocoa,nsscrollview,nsscroller,Cocoa,Nsscrollview,Nsscroller,是否可以“隐藏”NSScrollView的滚动条,但仍然可以获得手势滚动行为?为什么不试试呢 回答问题:是的,如果用户有带滚轮的鼠标或具有滚动功能的触摸板,尽管滚动条不可见,仍然可以滚动视图。导致滚动视图不显示滚动条,也不响应手势滚动: -setHasHorizontalScroller:NO -setHasHorizontalScroller:YES -setHidden:YES 导致显示禁用的滚动条,但它会响应手势滚动: -setHasHorizontalScroller:NO -se
回答问题:是的,如果用户有带滚轮的鼠标或具有滚动功能的触摸板,尽管滚动条不可见,仍然可以滚动视图。导致滚动视图不显示滚动条,也不响应手势滚动:
-setHasHorizontalScroller:NO
-setHasHorizontalScroller:YES
-setHidden:YES
导致显示禁用的滚动条,但它会响应手势滚动:
-setHasHorizontalScroller:NO
-setHasHorizontalScroller:YES
-setHidden:YES
创建NSScroller子类,并将其设置为NSScrollView实例的垂直/水平滚动器 NSScroller子类应覆盖此(10.7及以上版本):
这绝对是AppKit中的一个bug。我能够使用以下任一解决方案在10.8.5中实现此功能: 1)子类NSScroller(首选方法) 来源:在 2)在使用传统风格时反弹,势头似乎被打破。它还部分破坏了苹果的代码。如果一个是
NSScrollerStyleOverlay
,另一个是NSScrollerStyleLegacy
,则会导致滚动视图重置滚动位置。如果滚动覆盖样式滚动视图,则滚动传统样式,它会将两个滚动视图重置为顶部y=0滚动偏移
[self.scrollView setHasVerticalScroller:YES];
[self.scrollView setScrollerStyle:NSScrollerStyleLegacy];
[self.scrollView setHasVerticalScroller:NO];
是的,这是可能的。请在初始化scrollView后立即尝试此操作
self.scrollView.wantsLayer = YES;
我在不隐藏
NSScroller
子类和不触摸sethasverticalcoller:
的情况下实现了这一点。另外,如果self.scrollView
是重写drawRect:
的子类,请尝试将其关闭,以确保您在那里执行的操作不会导致问题。不确定我做错了什么。当setHasHorizontalScroller:是时,我可以用我的触控板滚动,但如果setHasHorizontalScroller:否,则不能。我想你的意思可能是“是会导致禁用的滚动条不显示,但它会响应手势滚动”,否?