2017-04-13 7 views
0

Ich habe eine App mit einem NSScrollView verschachtelt in einem anderen NSScrollView. Ich möchte, dass der Benutzer in der Lage ist, den inneren Bildlauf mit zwei Fingern zu scrollen und mit drei Fingern durch den äußeren Bildlauf zu blättern.Verschachtelte NSScrollViews, die mit verschiedenen Gesten gescrollt werden können?

Ich stelle mir vor, ich muss irgendwie scrollview konfigurieren, um Berührungen mit der falschen Anzahl von Fingern zu verwerfen, aber ich bin nicht sicher, wie das geht.

Antwort

0

Ich habe es herausgefunden! Der Trick ist, die innere ScrollView und zwingen sie zu Unterklasse Gesten abzulehnen, die eine bestimmte Anzahl von Berührungen haben, so dass sie an die Mutterscroll Spedition:

- (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; 
    } 
} 
Verwandte Themen