我有一个NSScrollView
嵌套在另一个NSScrollView
内的应用。我希望用户能够使用双指滑动滚动内部滚动视图,并使用三个手指滚动外部滚动视图。
我想我需要以某种方式配置每个scrollview以拒绝错误数量的手指触摸,但我不知道如何做到这一点。
答案 0 :(得分:0)
我明白了!诀窍是子类化内部ScrollView
并强制它拒绝具有一定数量触摸的手势,将它们转发到父卷轴视图:
- (void)scrollWheel:(NSEvent *)event {
if (_forwardScrollToParent) {
// [self.enclosingScrollView scrollWheel:event];
} else {
[super scrollWheel:event];
[self recordInteractionWithThisTab];
}
}
- (void)touchesBeganWithEvent:(NSEvent *)event {
[super touchesBeganWithEvent:event];
NSInteger nTouches = [event touchesMatchingPhase:NSTouchPhaseTouching inView:self].count;
if (nTouches == 3) {
_forwardScrollToParent = YES;
} else {
_forwardScrollToParent = NO;
}
}