NSScrollView上添加NSTextView滑动冲突问题

NSTextView放在NSScrollView上,当鼠标悬停在NSTextView上滚动鼠标滚轮时会发现NSScrollView并不会滚动,事件被NSTextView所拦截,只要重写scrollWheel方法就可以
1.自定义一个scrollview
2.重写scrollWheel方法

- (void)scrollWheel:(NSEvent *)event {
    if ([self.subviews[0].subviews[2] isKindOfClass:[NSTextView class]]) {
        NSTextView *tempView = self.subviews[0].subviews[2];
        if (tempView.string.length == 0) {
            [[self nextResponder] scrollWheel:event];
        }
    }else if (self.verticalScroller.floatValue == 1){
        if (event.deltaY < 0) {
            [[self nextResponder] scrollWheel:event];
        }else{
            [super scrollWheel:event];
        }
    }
    if (self.verticalScroller.floatValue == 0) {
        if (event.deltaY > 0) {
            [[self nextResponder] scrollWheel:event];
        }else{
            [super scrollWheel:event];
        }
    }
    
    [super scrollWheel:event];
}

你可能感兴趣的:(NSScrollView上添加NSTextView滑动冲突问题)