Как работают формы
Форма является группой связанных текстовых полей. В отличие от отдельных текстовых полей, поля в форме сотрудничают без любого вмешательства от разработчика. Например, можно снабдить вкладками от одного поля до другого, не пишущий кода или выполнив любую работу в Интерфейсном Разработчике.
Форма реализована как NSForm, подкласс NSMatrix, содержащего столбец NSFormCells. Вот пример:
В методах NSFORM каждый NSFormCell вызывают «записью» (или, иногда, «ячейка» или «элемент»). Левую часть каждой записи вызывают «заголовком», и правильную часть вызывают «текстом». Методы, относящиеся к отдельным записям, используют одномерный «индекс»; система индексации запускается наверху вершины формы с нулем.
Обычно Вы создадите и измените форму в Интерфейсном Разработчике. Можно также создать тот программно с одним из конструкторов NSFORM. Для добавления записи до конца формы использовать addEntry:
. Для добавления записи в определенном индексе использовать insertEntry:atIndex:
. Для удаления записи использовать removeEntryAtIndex:
.
Любая запись в форме может быть «выбрана». Когда запись выбрана, ее текстовая область реагирует на нажатия клавиш пользователя. Можно выбрать запись с помощью selectTextAtIndex:
метод, или можно позволить пользователю выбрать запись путем щелчка по нему с мышью. Как только запись выбрана, пользователь может выбрать следующую запись путем нажатия Tab или выбрать предыдущую запись путем нажатия Shift-Tab.
Для инициирования действия выбранной записи пользователь нажимает Return или Enter. В ответ запись отправляет сообщение действия в свою цель. Если запись не имеет никакой цели, NSForm отправляет сообщение действия в свою цель.