Изменение текстового хранения
Поведение NSTextStorage
объект лучше всего проиллюстрирован следующим сообщения, которые Вы отправляете для изменения его текста. Существует три этапа к редактированию текстового объекта хранения программно:
Первая стадия должна отправить ему a
beginEditing
сообщение для объявления о группе изменений.На втором этапе Вы отправляете ему некоторые сообщения редактирования, такой как
deleteCharactersInRange:
иaddAttributes:range:
, вызвать изменения в символах или атрибутах. Каждый раз, когда Вы отправляете такое сообщение, текстовый объект хранения вызываетedited:range:changeInLength:
отслеживать диапазон его символов, затронутых, так как это получилоbeginEditing
сообщение.Для третьей стадии, когда Вы сделаны, изменив текстовый объект хранения, Вы отправляете его
endEditing
сообщение. Это заставляет его вызывать свое собственноеprocessEditing
метод, фиксируя атрибуты в зарегистрированном диапазоне измененных символов. (См., что текстовый Атрибут Программирует Темы для получения информации о фиксации атрибута.)
После фиксации его атрибутов текстовый объект хранения отправляет сообщение каждому связанному менеджеру по расположению, указывающему диапазон в текстовом объекте хранения, изменившемся, вместе с природой тех изменений. Менеджеры по расположению поочередно используют эту информацию, чтобы повторно вычислить их расположения глифа и восстановить изображение при необходимости. NSTextStorage
также сохраняет делегата и отправляет, это обменивается сообщениями прежде и после обработки редактирований.