如何禁用NSScrollView的垂直滚动?
我无法在Google上找到快速解决方案。
由于
答案 0 :(得分:1)
我喜欢伊万的答案。但是,在我的特定情况下,我有一个表视图(垂直滚动),其中每行包含一个集合视图(水平滚动)。
当用户尝试向上/向下滚动时,如果鼠标悬停在其中一个集合视图上,则无法向上或向下滚动。
为了解决这个问题,我将包含NSCollectionViews的NSScrollView子类化,并使用以下代码覆盖了此方法:
override func scrollWheel(with event: NSEvent)
{
if (fabs(Double(event.deltaY)) > fabs(Double(event.deltaX))) {
self.nextResponder?.scrollWheel(with: event);
} else {
super.scrollWheel(with: event);
}
}
这样,它会检查用户是否主要在一个方向上滚动并正确处理它。
答案 1 :(得分:0)
您可以在scrollViewDidScroll:中观察内容偏移量,并将x值设置为您喜欢的值。
编辑: 那好吧。你见过这个:Constraining Scrolling?
答案 2 :(得分:-7)
想知道你是否遇到过
- (void)setHasVerticalScroller:(BOOL)flag;
禁用垂直滚动条?
您也可以在Interface Builder中设置它。