Текстовые поля, текстовые представления и полевой редактор
Текстовые поля, текстовые представления и полевой редактор являются важными объектами в текстовой системе Какао, потому что они являются центральными к взаимодействию пользователя с системой. Они обеспечивают ввод текста, манипулирование и дисплей. Если Ваше приложение имеет дело всегда с вводимым пользователем текстом, необходимо понять эти объекты.
Текстовые поля
Текстовое поле является объектом управления пользовательским интерфейсом, который инстанцируют от NSTextField
класс. Рисунок 4-1 показывает текстовое поле. Текстовые поля выводят на экран мелкие суммы текста, обычно (несмотря на то, что не обязательно) одна строка. Текстовые поля предоставляют места пользователям для ввода текстовых ответов, таких как поисковые параметры. Как все средства управления, текстовое поле имеет цель и действие, и оно выполняет проверку на своем значении, когда отредактировано. Если значение не допустимо, оно отправляет специальное ошибочное сообщение действия в свою цель.
Текстовое поле реализовано двумя классами: NSTextFieldCell
, ячейка, выполняющая большую часть работы, и NSTextField
, управление, содержащее ту ячейку. Каждый метод в NSTextFieldCell
имеет покрытие в NSTextField
. (Покрытие является методом того же имени, вызывающего исходный метод.) NSTextField
объект может иметь делегата, реагирующего на такие методы делегата как textShouldEndEditing:
.
По умолчанию, когда пользователь нажимает Return или перемещает фокус в другое управление т.е. текстовые поля отправляют свое сообщение действия при редактировании концов —. Можно управлять формой и расположением текстового поля, шрифтом и цветом его текста, цвета фона, доступен ли текст для редактирования или только для чтения, можно ли это выбрать или не (если только для чтения), и ли текстовые прокрутки или обертки, когда текст превышает видимую область текстового поля.
Для создания безопасного текстового поля для ввода пароля использовать NSSecureTextField
, подкласс NSTextField
. Безопасные текстовые поля выводят на экран маркеры вместо символов, вводимых пользователем, и они не позволяют сокращать или копировать их содержания. Можно получить значение текстового поля с помощью stringValue
метод, но пользователи не имеет никакого доступа к значению. Видеть Почему Использование Пользовательский Полевой Редактор? для получения информации о реализации безопасных текстовых полей.
Обычный способ инстанцировать текстового поля состоит в том, чтобы перетащить NSTextField
или NSSecureTextField
объект от Интерфейсного Разработчика возражает библиотеке и месту это в окне пользовательского интерфейса Вашего приложения. Вы можете поля текста ссылки вместе в ключевом цикле представления их окна путем установки каждого поля nextKeyView
выход в области Connections окна Inspector, так, чтобы пользователи могли нажать Tab для перемещения клавиатурного фокуса от одного поля до следующего в порядке, который Вы указываете.
Текстовые представления
Текстовые представления являются объектами пользовательского интерфейса, которые инстанцируют от NSTextView
класс. Рисунок 4-2 показывает текстовое представление. Текстовые представления обычно выводят на экран многократные строки текста, размеченного в абзацах со всеми характеристиками сложного набора. Текстовое представление является основным интерфейсом пользователя к системе редактирования текста Какао. Это обрабатывает пользовательские события, чтобы обеспечить ввод текста и модификацию, и вывести на экран любой шрифт, включая те из неанглийских языков, с произвольными цветами, стилями и другими атрибутами.
Текстовая система Какао поддерживает текстовые представления со многими другими основными объектами, обеспечивающими текстовое хранение, расположение, шрифт и манипулирование атрибутом, проверку правописания, отмену и восстановление, копию и вставку, перетаскивание, сохранение текста к файлам и другие функции. NSTextView
подкласс NSText
, который является отдельным классом по историческим причинам. Вы не инстанцируете NSText
, несмотря на то, что это объявляет многие методы, Вы используете с NSTextView
. Когда Вы помещаете NSTextView
объект в NSWindow
объект, у Вас есть полнофункциональный текстовый редактор, возможности которого предоставлены «бесплатно» текстовой системой Какао.
Полевой редактор
Полевой редактор является синглом NSTextView
объект, совместно использующийся среди всех средств управления, включая текстовые поля, в окне. Этот текстовый объект представления вставляет себя в иерархию представления для обеспечения услуг ввода текста и редактирования для в настоящее время активного текстового поля. Когда пользователь смещает фокус к текстовому полю, полевой редактор начинает обрабатывать события нажатия клавиши и дисплей для того поля. Рисунок 4-3 иллюстрирует полевого редактора в связи с текстовым полем, которое он редактирует.
Поскольку только одно из текстовых полей в окне может быть активным за один раз, системе нужен только один NSTextView
экземпляр на окно, чтобы быть полевым редактором. Однако можно заменить пользовательскими полевыми редакторами, когда мог быть больше чем один полевой редактор. Среди его других режимов работы полевой редактор поддерживает выбор. Поэтому текстовое поле, это не редактируется обычно, не имеет выбора вообще.
Для получения дополнительной информации о полевом редакторе, посмотрите Работу с Полевым Редактором.