Как работают поля комбинированного списка

Поле комбинированного списка является управлением, дающим пользователю два способа ввести значение: ввод его непосредственно в текстовом поле или выборе его из раскрывающегося списка предварительно выобранных значений. Используйте это управление каждый раз, когда Вы хотите, чтобы пользователь ввел информацию, которая может быть выбрана из конечного списка опций. Обратите внимание на то, что, в то время как можно создать NSComboBox так, чтобы пользователи были ограничены только выбором элементов из раскрывающегося списка поля комбинированного списка, это не нормальное поведение поля комбинированного списка.

В то время как раскрывающийся список видим, введение в текстовое поле заставляет инкрементный поиск выполняться в списке. Если существует соответствие, выбор в раскрывающемся списке изменяется для отражения соответствия.

NSComboBox обычно похож на это:

NSComboBox

При щелчке по указывающей вниз стрелке по правой стороне текстового поля, раскрывающийся список появляется, как это:

NSComboBox with pop-up list displayed

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

Обратите внимание на то, что NSComboBox также подкласс NSTextField, и таким образом наследовал все методы NSTextField. NSComboBox полагается в большой степени на его класс ячейки, NSComboBoxCell. NSComboBoxCell является подклассом NSTextFieldCell, комбинирующим ячейку текстового поля с ячейкой кнопки.

Поле комбинированного списка реализовано двумя классами: NSComboBoxCell, ячейка, выполняющая большую часть работы и NSComboBox, управление, содержащее ту ячейку. Каждый метод в NSComboBoxCell имеет покрытие в NSComboBox. (Покрытие является методом того же имени, вызывающего исходный метод.)