2010-02-12 8 views
1

J'ai un NSScrollView avec un IKImageView à l'intérieur pour afficher des images. Cela semble fonctionner. Cependant, si la fenêtre est plus petite que l'image, les barres de défilement apparaissent comme elles le devraient, mais le BAS de l'image est verrouillé en bas de la fenêtre, au lieu que le haut de l'image soit verrouillé en haut. de la fenêtre. En d'autres termes, je souhaite que l'image ne bouge pas à l'écran lorsque je redimensionne la fenêtre en bas à droite.IKImageView et barres de défilement

Je comprends pourquoi c'est parce que dans Toutes ces classes, l'origine est en bas à gauche, pas en haut à gauche. Cependant, il se comporte toujours mal. Si vous regardez n'importe quel autre produit (y compris Preview, que je suppose est écrit avec certaines de ces bibliothèques) l'image/contenu/peu importe, est verrouillé en haut et non en bas.

Comment faire?

J'ai recherché des méthodes dans NSScrollView et IKImageView. J'ai envisagé de capturer les événements de défilement et de déplacer manuellement l'image vers le bas ou vers le haut selon les besoins, mais je n'ai pas vu un moyen de le faire (Définir le sélecteur sur une méthode que j'écris dans le contrôleur?) désordre ...

Y at-il un moyen facile de le faire?

merci.

Répondre

0

Solution pour référence future: Faire une sous-classe de IKImageView avec une seule méthode supplantée:

-isFlipped() 
{ 
    return YES; 
} 

Cette sous-classe sera également utile si je trouve que je dois re-mettre en œuvre la rotation :(id) méthode et la méthode setImage: (NSImage) qui existent dans la classe (et dans le cas de rotation sont utilisés dans la démo fournie par Apple) mais pas documenté, et donc pas officiellement pris en charge ...

Questions connexes