Сегментированный обзор средств управления

NSSegmentedControl является подклассом NSControl это реализует горизонтальное управление, сделанное из многократных сегментов. Это обеспечивает компактные средние значения группирования многих средств управления, как показано на рисунке 1.

Рисунок 1  сегментированное управление в Почте
An example of a segmented control

Сегменты могут содержать текст, изображения и меню. Одно из самых простых приложений сегментированного управления является своим использованием в качестве компактной альтернативы группе переключателей. Здесь, пользователь делает единственный выбор от многих опций. В более сложном примере сегменты могут быть независимо выбраны или связали меню.

NSSegmentedControl имеет эти функции:

Появлением и поведением сегментированного управления управляет класс NSSegmentedCell. Большинство NSSegmentedCell методы имеют покрытия в NSSegmentedControl, которые просто вызывают NSSegmentedCell эквивалентный. Для получения дополнительной информации посмотрите спецификации класса Ссылки класса Ссылки класса и NSSegmentedControl NSSegmentedCell.

Базовая конфигурация

Сегментированное управление требует некоторой базовой конфигурации. Необходимо указать его режим отслеживания — путь, которым обрабатываются выборы; сколько сегментов это содержит; и, дополнительно, ширина каждого сегмента. Сегментированные средства управления поддерживают три различных режима отслеживания:

Можно сконфигурировать сегментированное управление программно или использующий Интерфейсного Разработчика. В Какао режим отслеживания установлен с помощью NSSegmentedCell метод. Так как соединения обычно делаются к управлению, содержащему ячейку, обычно необходимо получать доступ к ячейке сначала и затем отправлять сообщение при установке режима отслеживания программно.

Текстовые метки и изображения

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

Меню

Сегмент может иметь меню; можно сконфигурировать это меню программно или в Интерфейсном Разработчике. Вы тогда устанавливаете меню для сегмента программно, с помощью setMenu:forSegment: метод. Вы обычно устанавливаете меню вместе с меткой или изображением. Если Вы не указываете также, сегмент остается пробелом, несмотря на то, что меню появится, когда пользователь щелкнет по нему.