Как центрировать NSSegmentedControl

Я добавил NSSegmentedControl на панель в горизонтальном разделенном представлении в обычном окне. Я думал, что регулировка пружин сделает сам сегментированный центр управления автоматическим, но это не так. Как удержать его в центре?

Мне сказали добавить наблюдателя при изменении кадра родительского представления и вручную отрегулировать положение центрированного представления, но я понятия не имею, как это сделать.

Любые идеи очень приветствуются.


person ruipacheco    schedule 08.12.2009    source источник


Ответы (2)


Схема, которую вы описываете, звучит вполне правдоподобно в IB.

Просто протестировав это, я удалил сегментированный элемент управления в одном из представлений в разделенном представлении, и он остается по центру, поэтому я уверен, что это просто проблема с конфигурацией.

Убедитесь, что:

  1. Ваше разделенное представление настроено так, чтобы оставаться в центре и соответствующим образом изменять размер окна (просто чтобы убедиться, что поведение, которое вы видите, не связано с контейнером сегментированного элемента управления, который не изменяет размер должным образом).

  2. Вы позиционируете свой сегментированный элемент управления в мертвой точке, а затем оставляете все 3 горизонтальные «пружины» незажатыми (т. е. без привязки слева, без привязки справа, без горизонтального роста).

person Jarret Hardie    schedule 08.12.2009

Я не знаю, было ли это «исправлено» в последних версиях ОС, но, если я правильно помню, NSSegmentedControl выполняет -sizeToFit каждый раз, когда сегменты меняются. Если управление вообще не меняется, инструкции Джарретта должны работать.

person Joshua Nozzi    schedule 08.12.2009