目前我将scrollWheel:事件从内部视图传递到外部视图,但它非常慢.
解决方法 我也有嵌套滚动视图的问题.内部滚动视图应水平滚动,外部应垂直滚动.当处理来自魔术鼠标/触控板的滚动事件时,重要的是只为每个手势选择一个滚动视图,否则当手指不能完全笔直移动时,您会看到奇怪的抖动.您还应该确保用两个手指点击触控板显示两个滚动条.
当处理来自强大鼠标或具有旧式滚轮的鼠标的传统滚动事件时,您必须为每个事件选择正确的滚动视图,因为事件中没有手势阶段信息.
这是我的内部滚动视图的子类,仅在Mountain lion中测试:
@interface PGEhorizontalscrollview : NSScrollVIEw { BOol currentScrollisHorizontal;}@end@implementation PGEhorizontalscrollview-(voID)scrollWheel:(NSEvent *)theEvent { /* Ensure that both scrollbars are flashed when the user taps trackpad with two fingers */ if (theEvent.phase==NSEventPhaseMayBegin) { [super scrollWheel:theEvent]; [[self nextResponder] scrollWheel:theEvent]; return; } /* Check the scroll direction only at the beginning of a gesture for modern scrolling devices */ /* Check every event for legacy scrolling devices */ if (theEvent.phase == NSEventPhaseBegan || (theEvent.phase==NSEventPhaseNone && theEvent.momentumPhase==NSEventPhaseNone)) { currentScrollisHorizontal = fabs(theEvent.scrollingDeltaX) > fabs(theEvent.scrollingDeltaY); } if ( currentScrollisHorizontal ) { [super scrollWheel:theEvent]; } else { [[self nextResponder] scrollWheel:theEvent]; }}@end
我的实现并不总是正确地转发手势取消事件,但至少在10.8中这不会导致问题.
总结以上是内存溢出为你收集整理的cocoa – 另一个NSScrollView里面的NSScrollView全部内容,希望文章能够帮你解决cocoa – 另一个NSScrollView里面的NSScrollView所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)