Сегментированный обзор средств управления
NSSegmentedControl является подклассом NSControl
это реализует горизонтальное управление, сделанное из многократных сегментов. Это обеспечивает компактные средние значения группирования многих средств управления, как показано на рисунке 1.
Сегменты могут содержать текст, изображения и меню. Одно из самых простых приложений сегментированного управления является своим использованием в качестве компактной альтернативы группе переключателей. Здесь, пользователь делает единственный выбор от многих опций. В более сложном примере сегменты могут быть независимо выбраны или связали меню.
NSSegmentedControl
имеет эти функции:
Каждый сегмент может иметь изображение, текст (метка), меню, подсказка и тег.
Или целое управление или отдельные сегменты могут быть включены или отключены.
Существует три режима: переключатель (как проиллюстрировано управлением селекцией мод представления Средства поиска), мгновенный (как проиллюстрировано кнопками на панели инструментов Safari), или немного вкл\выкл.
Каждый сегмент может или быть фиксированной шириной или быть автоизмерен для адаптации содержанию.
Это обеспечивает полное управление клавиатурой пользовательского интерфейса.
Появлением и поведением сегментированного управления управляет класс NSSegmentedCell
. Большинство NSSegmentedCell
методы имеют покрытия в NSSegmentedControl
, которые просто вызывают NSSegmentedCell
эквивалентный. Для получения дополнительной информации посмотрите спецификации класса Ссылки класса Ссылки класса и NSSegmentedControl NSSegmentedCell.
Базовая конфигурация
Сегментированное управление требует некоторой базовой конфигурации. Необходимо указать его режим отслеживания — путь, которым обрабатываются выборы; сколько сегментов это содержит; и, дополнительно, ширина каждого сегмента. Сегментированные средства управления поддерживают три различных режима отслеживания:
Только один сегмент может быть выбран
Любой сегмент может быть выбран
Сегменты выбраны только при отслеживании
Можно сконфигурировать сегментированное управление программно или использующий Интерфейсного Разработчика. В Какао режим отслеживания установлен с помощью NSSegmentedCell
метод. Так как соединения обычно делаются к управлению, содержащему ячейку, обычно необходимо получать доступ к ячейке сначала и затем отправлять сообщение при установке режима отслеживания программно.
Текстовые метки и изображения
Можно установить текстовую метку (заголовок) или отобразить независимо для каждого сегмента. По умолчанию, каждый сегмент авторазмеры для адаптации его содержанию. Если Вы хотите гарантировать фиксированный размер — возможно, с каждым сегментом та же ширина — необходимо установить ширину каждого сегмента индивидуально. В этом случае Вам решать, чтобы гарантировать, что каждый сегмент достаточно широк для своего содержания. Если сегмент является слишком узким для своего содержания, текст является усеченным, и изображения отсекаются.
Меню
Сегмент может иметь меню; можно сконфигурировать это меню программно или в Интерфейсном Разработчике. Вы тогда устанавливаете меню для сегмента программно, с помощью setMenu:forSegment:
метод. Вы обычно устанавливаете меню вместе с меткой или изображением. Если Вы не указываете также, сегмент остается пробелом, несмотря на то, что меню появится, когда пользователь щелкнет по нему.