[Résolu] Adapter une NSScrollview lorsque sa NSView change
berfis
Membre
Bonsoir,
Une petite question sans doute élémentaire, mais je n'ai pas trouvé la réponse (peut-être mes critères étaient-ils mal formulés).
J'ai une NSView dont la taille peut varier (mettons que je "zoome" sur elle). Comme je n'ai pas envie que cette view dépasse de la fenêtre, je l'ai "incluse" dans une NSScrollView.
Comment faire, lorsque la taille de la NSView augmente, pour adapter les barres de défilement de la NSScrollView en conséquence, y compris pour les désactiver lorsque la NSView devient plus petite que la NSScrollView?
D'avance merci de m'indiquer la solution (même par une référence sur la partie de la doc que j'ai certainement survolée inconsidérément).
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Ce que tu veux c'est adapter ta NSScrollView à ta NSView. Si la NSView devient plus grande, alors tu peux scroller pour. Si la NSView devient plus petite que la taille de ta NSScrollView, tu ne peux plus scroller.
Ta NSScrollView possède une propriété : documentView. Tu dois ajouter ta NSView à cette propriété.
Tu peux ensuite changer la frame de ta documentiez en fonction de la taille de ta NSView.
Apple donne un exemple ici.
J'ai jamais utilisé NSScrollView (je suis plus iOS) mais ça y ressemble beaucoup à mon avis.
J'avais fait ça, avec les nsView et scrollView définies dans IB (là j'ai pris une imageView pour tester: je n'ai qu'à glisser une image pour voir si ça marche). Bien sûr j'ai dérivé l'imageView pour savoir quand l'image changeait:
... mais ça ne marche pas, j'aurais été trop content. A vrai dire, l'init de ma ASImageView n'est même pas appelée... ça ça me parait grave.
Ooops! Silly me. La ASImageView est déjà instanciée par le chargement du nib! C'est awakeFromNib qu'il faut implémenter, pas initWithFrame!
Navré du dérangement! ça marche, maintenant. Génial! Et merci pour la réponse, ça m'a forcé à réfléchir un peu! ::)