Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 可以使用不同手势滚动的嵌套NSScrollView?_Macos_Cocoa_Nsscrollview_Nsresponder_Trackpad - Fatal编程技术网

Macos 可以使用不同手势滚动的嵌套NSScrollView?

Macos 可以使用不同手势滚动的嵌套NSScrollView?,macos,cocoa,nsscrollview,nsresponder,trackpad,Macos,Cocoa,Nsscrollview,Nsresponder,Trackpad,我有一个应用程序,它的NSScrollView嵌套在另一个NSScrollView中。我希望用户能够使用两个手指滑动滚动内部scrollview,并使用三个手指滚动外部scrollview 我想我需要以某种方式配置每个scrollview,以拒绝使用错误手指数的触摸,但我不知道如何做到这一点。我找到了答案!诀窍是将内部的ScrollView子类化,并强制它拒绝具有一定数量触摸的手势,将它们转发到父ScrollView: - (void)scrollWheel:(NSEvent *)event {

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


我想我需要以某种方式配置每个scrollview,以拒绝使用错误手指数的触摸,但我不知道如何做到这一点。

我找到了答案!诀窍是将内部的
ScrollView
子类化,并强制它拒绝具有一定数量触摸的手势,将它们转发到父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;
    }
}