9
votes

Nsscrollview ScrollToTotop

Est-ce que quelqu'un connaît la bonne façon de faire défiler le NSScrollView au sommet? Je cherchais un équivalent à la méthode ScrollTotoTop de UIVIEW.

C'est ce que j'ai jusqu'à présent, mais ce n'est pas tout à fait juste sous toutes les situations xxx


0 commentaires

4 Réponses :


9
votes

finalement compris. Fonctionne comme un charme!

if ([self hasVerticalScroller]) {
    self.verticalScroller.floatValue = 0;
}

NSPoint newOrigin = NSMakePoint(0, NSMaxY(((NSView*)self.documentView).frame) - self.boundsHeight);
[self.contentView scrollToPoint:newOrigin];


0 commentaires

5
votes

Cela fonctionne aussi bien. Définir le point de défilement du documentView de NSSCrollView

NSPoint pt = NSMakePoint(0.0, [[self.scrollView documentView]
                               bounds].size.height);
[self.scrollView.documentView scrollPoint:pt];


0 commentaires

1
votes

Les solutions précédentes font défiler vers le bas lors de la traduction de Swift pour Mac OS. La direction de coordonnées Y est retournée sur Mac OS et iOS.

STAND SWIFT 3 SOLUTION POUR MAC OS: P>

scrollView.documentView?.scroll(NSPoint.zero)


2 commentaires

Votre solution fait défiler vers le bas. Peut-être que vous avez vos coordonnées de vue retournées?


Ah, clarification. Ma solution fonctionne sur Mac OS. Les coordonnées sont retournées sur IOS afin que vous souhaitiez probablement utiliser la hauteur des limites du document sur iOS.



16
votes

Mis à jour pour SWIFT 5 :

Si votre vue de document est retournée: xxx

sinon: xxx


1 commentaires

Deuxième option fonctionne sur Catalina 10.15.5 et Swift 5.2