【问题标题】:Nested NSScrollViews that can be scrolled with different gestures?可以用不同手势滚动的嵌套 NSScrollViews?
【发布时间】:2017-04-13 04:55:19
【问题描述】:

我有一个应用程序,其中一个 NSScrollView 嵌套在另一个 NSScrollView 中。我希望用户能够使用两指滑动来滚动内部滚动视图,并使用三指滚动外部滚动视图。

我想我需要以某种方式配置每个滚动视图以拒绝手指数量错误的触摸,但我不知道该怎么做。

【问题讨论】:

    标签: macos cocoa nsscrollview nsresponder trackpad


    【解决方案1】:

    我想通了!诀窍是将内部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;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多