Изменение текстового хранения

Поведение NSTextStorage объект лучше всего проиллюстрирован следующим сообщения, которые Вы отправляете для изменения его текста. Существует три этапа к редактированию текстового объекта хранения программно:

  1. Первая стадия должна отправить ему a beginEditing сообщение для объявления о группе изменений.

  2. На втором этапе Вы отправляете ему некоторые сообщения редактирования, такой как deleteCharactersInRange: и addAttributes:range:, вызвать изменения в символах или атрибутах. Каждый раз, когда Вы отправляете такое сообщение, текстовый объект хранения вызывает edited:range:changeInLength: отслеживать диапазон его символов, затронутых, так как это получило beginEditing сообщение.

  3. Для третьей стадии, когда Вы сделаны, изменив текстовый объект хранения, Вы отправляете его endEditing сообщение. Это заставляет его вызывать свое собственное processEditing метод, фиксируя атрибуты в зарегистрированном диапазоне измененных символов. (См., что текстовый Атрибут Программирует Темы для получения информации о фиксации атрибута.)

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