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];
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容