Геометрия макета: класс NSTextContainer

NSTextContainer объект определяет область на странице, на которой текстовая система Какао размечает текст. По умолчанию текстовый контейнер определяет простую, прямоугольную область, но можно создать подклассы, определяющие области с помощью любой геометрической формы, включая области с дырами, вокруг которых течет текст.

NSTextContainer обеспечивает один из четырех основных текстовых объектов в текстовой системе Какао. Текстовая работа контейнеров с текстовыми объектами хранения, менеджерами по расположению, и текстовыми представлениями для хранения, размечает и выводит на экран приписанные текстовые строки. В частности текстовый контейнер работает непосредственно с менеджером по расположению, использующим NSTypesetter объект генерировать прямоугольники фрагмента строки, в которые можно поместить глифы (символьные формы), как описано в Генерации Фрагмента Строки

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

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

Можно указать, что текстовый контейнер отслеживает размер своего текстового представления; т.е. если пользователь изменяет размеры представления, текстовый контейнер изменяет размеры себя для соответствия. Для получения дополнительной информации посмотрите Отслеживание Размера текстового Представления.

NSTextContainer экземпляры имеют методы для инициализации, управляя соединением с менеджерами по расположению и текстовыми представлениями, добираясь и устанавливая контейнерный размер, генерируя фрагменты строки и тестирование хита. Кроме того, NSTextContainer имеет методы для получения и установки суммы дополнения для применения к фрагментам строки. Дополнение фрагмента строки является дополнительным пространством, включенным в концы фрагментов строки, таким образом, положенные глифы непосредственно не касаются других элементов на странице, таких как графика.