2011-12-22 5 views

Répondre

1

Il y a probablement plusieurs façons d'y parvenir, mais jetez un oeil à - [NSClipView constrainScrollPoint:]. Il n'est pas destiné à être appelé directement, mais à être remplacé dans une sous-classe NSClipView. NSClipView est la classe qui fait le vrai travail de faire défiler le contenu d'un NSScrollView.

Vous devriez pouvoir l'ignorer pour retourner simplement le point d'origine actuel de la vue du document lorsque vous ne voulez pas que le défilement se produise. Il est à noter que cela désactivera également le défilement via l'interface visible par l'utilisateur. Vous ne devriez donc le faire que lorsque vous remplissez la vue avec du contenu. Sinon, renvoyez le résultat d'un appel à l'implémentation de la superclasse.

+0

J'ai fait ce que vous me dites, mais quand je remplace le '[NSScrollView contentView]' il semble qu'il ne soit pas remplacé. Je le remplace en étendant mon 'NSScrollView' et en remplaçant' - (id) initWithFrame: (NSRect) frameRect; '. – Dimme

+0

Si vous définissez le scrollview dans Interface Builder, vous devriez pouvoir utiliser votre sous-classe personnalisée NSClipView en définissant sa classe dans IB. Pour le faire par programmation, vous devriez pouvoir utiliser - [NSScrollView setContentView:] en passant une instance de votre sous-classe d'affichage de clip personnalisé. Vous devez vous assurer que vous avez également défini l'affichage du document correctement. –

Questions connexes