2009-12-08 5 views
2

J'ai ajouté un NSSegmentedControl à un volet dans une vue horizontale partagée sur une fenêtre normale. Je pensais que le réglage des ressorts ferait automatiquement le centre de contrôle segmenté lui-même, mais ce n'est pas le cas. Comment peut-il rester centré?Comment faire pour centrer NSSegmentedControl

On m'a dit d'ajouter un observateur pour quand le cadre de la vue parent change, et d'ajuster manuellement la position de la vue centrée, mais je n'ai aucune idée de comment s'y prendre.

Toutes les idées sont les bienvenues.

Répondre

4

La mise en page que vous décrivez semble totalement plausible dans IB. Juste pour le tester, j'ai laissé tomber un contrôle segmenté dans l'une des vues dans une vue éclatée, et il reste centré, donc je suis sûr qu'il y a juste un problème de configuration.

Assurez-vous que:

  1. Votre point de vue partagé est réglé pour rester centré et redimensionner de manière appropriée avec la fenêtre appropriée (juste pour vous assurer que le comportement que vous voyez n'est pas lié au conteneur du contrôle segmenté ne pas redimensionner correctement). Vous positionnez le point mort de votre contrôle segmenté, puis laissez les 3 «ressorts» horizontaux non-cliqués (c'est-à-dire: pas d'ancrage à gauche, pas d'ancrage à droite, pas de croissance horizontale).

0

Je ne sais pas si elle a été « fixé » dans les dernières versions OS, mais si je me souviens bien, NSSegmentedControl un -sizeToFit chacun ne segments de temps changent. Si le contrôle ne change pas du tout, les instructions de Jarrett devraient fonctionner.