Как работают формы

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

Форма реализована как NSForm, подкласс NSMatrix, содержащего столбец NSFormCells. Вот пример:

An NSForm form

В методах NSFORM каждый NSFormCell вызывают «записью» (или, иногда, «ячейка» или «элемент»). Левую часть каждой записи вызывают «заголовком», и правильную часть вызывают «текстом». Методы, относящиеся к отдельным записям, используют одномерный «индекс»; система индексации запускается наверху вершины формы с нулем.

Обычно Вы создадите и измените форму в Интерфейсном Разработчике. Можно также создать тот программно с одним из конструкторов NSFORM. Для добавления записи до конца формы использовать addEntry:. Для добавления записи в определенном индексе использовать insertEntry:atIndex:. Для удаления записи использовать removeEntryAtIndex:.

Любая запись в форме может быть «выбрана». Когда запись выбрана, ее текстовая область реагирует на нажатия клавиш пользователя. Можно выбрать запись с помощью selectTextAtIndex: метод, или можно позволить пользователю выбрать запись путем щелчка по нему с мышью. Как только запись выбрана, пользователь может выбрать следующую запись путем нажатия Tab или выбрать предыдущую запись путем нажатия Shift-Tab.

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